Object-Oriented Programming in C# 2013
CLASS DATE(s):
Request a Class

COURSE LENGTH: 5 Days

COURSE COST: $2495.00

COURSE TIMES: 9:00am - 4:30pm

Printable version of this course
print

COURSE OVERVIEW

This thorough and comprehensive 5 day course is a practical introduction to programming in C#, utilizing the services provided by .NET. This course emphasizes the C# language. It is current to Visual Studio 2013 and .NET 4.5.1. Important newer features such as dynamic data type, named and optional arguments, the use of variance in generic interfaces, and asynchronous programming keywords are covered in a final chapter. A supplement covers the fundamentals of Language Integrated Query (LINQ). An important thrust of the course is to teach C# programming from an object-oriented perspective. It is often difficult for programmers trained originally in a procedural language to start "thinking in objects".This course introduces object-oriented concepts early, and C# is developed in a way that leverages its object orientation. A case study is used to illustrate creating a complete systemusing C# and .NET.

IT Courseware

AUDIENCE AND PREREQUISITES

Programmers who need to design and develop C# for the .NET framework.

The student should have programming experience in a high-level language.

  

*Course Cost listed does not include the cost of courseware or lunch, required in your registration. Please refer to your Enrollment Sales Order or Invoice for the additional cost. If you have any questions, please contact us (learn@vtec.org or 207-775-0244). Course is subject to minimum enrollment.

COURSE TOPICS:


.NET: What You Need to Know
Getting Started
.NET: What is Really Happening
.NET Programming in a Nutshell
Viewing the Assembly
Viewing Intermediate Language
Understanding .NET
Visual Studio 2013
Creating a Console Application
Adding a C# file
Using the Visual Studio Text Editor
IntelliSense
Build and Run the Project

First C# Programs
Hello, World
Compiling, Running (Command Line)
Program Structure
Namespaces
Exercise
Answer
Variables
Expressions
Alignment
Calculations Using C#
More About Output in C#
Input in C#

.
More About Classes
InputWrapper Class
Echo Program
Using InputWrapper
Compiling Multiple Files
Multiple Files in Vi
The .NET Framework

Data Types in C#
Strong Typing
Typing in C#, C++, Visual Basic 6
C# Types
Integer Types, Integer Type Range, and Integer Literals
Floating Point Types and Floating Point Literals
IEEE Standard for Floating Point
Decimal Types, Decimal Literals
Character Type, Character Literals
string
Escape Characters
Boolean Type, Nullable Types
Implicit Conversions, Explicit Conversions

Operators and Expressions
Operator Cardinality
Arithmetic Operators
Muliplication, Division
Additive Operators
Increment and Decrement
Relational Operators, Conditional Logical Operators
Short-Circuit Evaluation
Ternary Conditional Operators
Bitwise Operators, Bitwise Logical Operators, Bitwise Shift Operators
Assignment Operators
Expressions, Prededence, Associativity,
Checking

Control Structures
If Test
Blocks
Loops
while Loop
do/while Loops
for Loops
Arrays
foreach Loop
break, conttinue, goto
Structural Programming
Multiple Methods
switch, switch in C# and C/C++

Object-Oriented Programming
Objects
Objects in the Real World, Object Models
Reuseable Software Components
Objects in Software
State and Behavior
Abstration, Encapsulation
Classes
Inheritance Concepts
Relationships amoung Classes
Polymorphism
Object-Oriented Alalysis and Design
CRC Cards and UML

Classes
Class Structure Data
Classes and Objects
References
Instantiating and Using an Object
Garbage Collection
Methods
Public and Private
Abstration, Encapsulation, Initialization, Initialization with Constructors
Default Constructor
this
Static Methos, Static Constructor
Constant and Readonly Fields

More about Types
Overview of Types in C#
Structures
Uninitialized Variables
Copying a Structure
Hotel.cs, HotelCopy.cs
Classes and Structs
Enumeration Types, Reference Types, Class Types
object, string
Arrays
Default Values
Boxing and Unboxing
Implicity Types Variables

Methods, Properties, and Operators
Static and Instance Methods
Method Parameters
No "Freestanding" Functions in C#
Classes with All Static Methods
Parameter Passing
Parameter Terminology
Value, Reference, Output, Structure, adn Class Parameters
Method Overloading
Modifiers as Part of the Signature
Variable Length Parameter Lists
Auto-Implemented Properties
Operator Overloading

Characters and Strings
Characters and Character Codes
ASCII and Unicode
Escape Sequences
Strings, String Class, String Literals and Initialization
Concatenation
Relational Operators
String Equality, String Comparisons, String Input
String Methods and Properties
StringBuilder Class, StringBuilder Equality
Command Line Arguments and Command Line Arguments in the IDE
Command Loops
Splitting a String

Arrays and Indexers
Arrays and One Dimensional Arrays
System.Array
Random Number Generation
Next Mthods
Jagged Arrays, Rectangular Arrays
Arrays as Collections
Account Class
Bank Class
TestBank Class
ATM Class
Running the Case Study
Indexers, Using the Indexers

Inheritance
Inheritance Fundamentals
Inheritance in C#, Single Inheritance
Root Class - Object
Access Control
Public Lass Accessibility, Internal Class Accessibility, Member Accessibility, Member Accessibility Qualifiers
Method Hiding and Overriding
Initialization Fundamentals
Defualt Construtor, Overloaded Constructors
Invoking Base Class Constructors
Bank Case Study Analysis
Account, CheckingAccount, SavingsAccount, TestAccount
Running the Case Study

Virtual Methods
Introduction to Polymorphism
Abstract and Sealed Classes
Visual Methods and Dynamic Binding
Type Conversions in Inheritance
Converting Down the Hierarchy, Converting Up the Hierarchy
Virtual Methods, Virtual Methods Cost
Method Overriding
The Fragile Base Class Problem
override Keyword
Polymorphism
Polymorphism Using "type Tags"
Polymorphism Using Virtual

.
Abstract Classes
Sealed Classes
Heterogeneous Collections
Case Study Classes
Run the Case Study
Account
CheckingAccount, SavingsAccount
Bank and ATM
TestBank

Exceptions
Introduction to Exceptions
Exception Fundamentals
.NET Exception Handling
Exception Flow of Control
Contect and Stack Unwinding
System.Exception
User-Defined Exception Classes
Structure Exception Handling
Finally BLock
Inner Exceptions
Checked Integer Arithmetic

Interfaces
Interfaces in C#
Interface Inheritance
Programming with Interfaces
Implementing Interfaces
Using and Interface
is Operator
as Operator
Common Use of Interfaces in Case Study - IAccount
Apparent Redundancy
IStatement
IStatement Methods
IChecking

.
ISavings
The Implementation
The Client
Resolving Ambiguity
Access Modifier
Explicit Interfaces Test Program

.NET Interfaces and Collections
Overview
Collections
Count and Capacity
foreach Loop
Array Notation
Adding to the List
Remove Method
RemoveAt Method
Collection Interfaces
IEnumerable and IEnumerator
ICollection
IList

.
A Collection of User-Defined Objects
Duplicate Objects
A Correction of User-Defined Objects
Copy Semantics and ICloneable
Copy Semantics in C#
SHallow Copy and Deep Copy
Reference Copy
Memberwise Clone
Using ICloneable
Comparing Objects
Sorting and Array
Anatomy of Array.Sort
Using the is Operator
The Use of Dynamic Type Checking
Implementing IComparable
Running the Program
Complete Solution
Lab 17A
Writing Generic Code
Using a Class of object
Generic Types, Generic Syntax in C#, Generic Client Code
System.Collections.Generic
Object Initializers, Collection Initializers
Anonymous Types

Delegates and Events
Overview of Delegates and Events
Callbacks and Delegates
Use of Delegates, Declaring a Delegate
Defining a Method
Creating a Delegate Object
Calling a Delegate
A Random Array
Anonymous Method
Combining Delegate Objects
Account.cs
DelegateAccount.cs
Lambda Expressions

.
Named Method
Anaonymous Method
Events
Events in C# and .NET
Client Side Event Code

Introduction to Windows Forms
Creating a Windows Forms App
Partial Classes
Windows Forms Events Handling
Add Events for a Control
Events Documentation
Closing a Form
ListBox Control

New Features in C# 4.0 and C# 5.0
dynamic Type
dynamic Versus object
Behavior of object, Behavior of dynamic
Names Arguments, Optional Arguments
Book Class
Using Optional Arguments
Variance in Generic Interfaces
Variance in IComparer
Interfaces with Variance Support
Asynchronous Programs in C# 5.0
Task and Task
Async Methods, Synchronous Call, Async Call, Theading