Institute for Advanced Professional Studies

Object-Oriented Programming with C#

.NET and C# 2.0 Overview:

Microsoft's .NET is a major advance in programming technology that greatly simplifies application development. It is a good match for the emerging paradigm of Web-based services, as opposed to proprietary applications. Part of this technology is an evolving language, C# (see C# Version 2.0 Language Specification). C# 2.0, released in 2005, combines the power of C++ and the ease of development of Visual Basic. It bears a resemblance to Java and improves on that language. C# is becoming increasingly popular and may well become the dominant language for building applications on Microsoft platforms.

The course introduces C# programming from an object-oriented software development perspective. Besides supporting traditional object-oriented features, such as classes, inheritance, and polymorphism, C# introduces several additional features, such as properties, indexers, delegates, events, and interfaces that make C# a compelling language for developing object-oriented and component-based systems. This course provides thorough coverage of all these features.

To utilize C#'s capabilities fully, you need to know how it works with the .NET Framework. The course explores several important interactions between C# and the .NET Framework, and it includes an introduction to major classes for collections, delegates, and events. It also provides a succinct introduction to creating GUI programs using Windows Forms. The course includes programming exercises to illustrate each important new C# (2005) feature provided by .NET 2.0, and concludes with a discussion of the proposed features and language extensions of C# 3.0.

Numerous programming examples and exercises are provided, including a case study. Participants will receive a comprehensive set of materials, including course notes and all the programming examples.

Related courses:

Workshop Objectives:

Upon successful completion of this course, participants will be able to:

  • Design, write and test C# programs
  • Implement programs using C# and classes from the .NET Framework
  • Implement simple GUI programs using Windows Forms
  • Use generic types, iterators, partial classes, and other new features in C# 2.0.

IAPS can customize C# and .NET training to achieve specific organizational objectives.

Topic Outline:

  • .NET: What You Need To Know
    • .NET Executables and the Common Language Runtime (CLR)
    • A .NET Testbed for C# Programming
    • Using Visual Studio .NET

  • First C# Programs
    • Hello, World
    • Namespaces
    • Variables and Expressions
    • Using C# as a Calculator
    • Input/Output in C#
    • .NET Framework Class Library

  • Data Types in C#
    • Data Types
    • Integer Types
    • Floating Point Types
    • Decimal Type
    • Characters and Strings
    • Boolean Type
    • Conversions

  • Operators and Expressions
    • Operator Cardinality
    • Arithmetic Operators
    • Relational Operators
    • Logical Operators
    • Bitwise Operators
    • Assignment Operators
    • Expressions
    • Checked and Unchecked

  • Control Structures
    • If Tests
    • Loops
    • Arrays
    • Foreach
    • More About Control Flow
    • Switch

  • Object-Oriented Programming
    • Objects
    • Classes
    • Inheritance
    • Polymorphism
    • Object-Oriented Languages
    • Components

  • Classes
    • Classes as Structured Data
    • Methods
    • Constructors and Initialization
    • Static Fields and Methods
    • Constant and Readonly

  • More About Types
    • Overview of Types in C#
    • Value Types
    • Boxing and Unboxing
    • Reference Types

  • Methods, Properties and Operators
    • Methods
    • Parameter Passing
    • Method Overloading
    • Variable-Length Parameter Lists
    • Properties
    • Operator Overloading

  • Characters and Strings
    • Characters
    • Strings
    • String Input
    • String Methods
    • StringBuilder Class
    • Programming with Strings

  • Arrays and Indexers
    • Arrays
    • System.Array
    • Random Number Generation
    • Jagged Arrays
    • Rectangular Arrays
    • Arrays as Collections
    • Indexers

  • Inheritance
    • Single Inheritance
    • Access Control
    • Method Hiding
    • Initialization

  • Virtual Methods and Polymorphism
    • Virtual Methods and Dynamic Binding
    • Method Overriding
    • Fragile Base Class Problem
    • Polymorphism
    • Abstract Classes
    • Sealed Classes
    • Heterogeneous Collections

  • Formatting and Conversion
    • ToString
    • Format Strings
    • String Formatting Methods
    • Type Conversions

  • Exceptions
    • Exception Fundamentals
    • Structured Exception Handling
    • User-Defined Exception Classes
    • Inner Exceptions

  • Interfaces
    • Interface Fundamentals
    • Programming with Interfaces
    • Using Interfaces at Runtime
    • Resolving Ambiguities

  • Interfaces and the .NET Framework
    • Collections
    • Copy Semantics and ICloneable
    • Comparing Objects
    • Understanding Frameworks

  • Delegates and Events
    • Delegates
    • Stock Market Simulation
    • Events

  • Introduction to Windows Forms
    • Creating Windows Applications Using Visual Studio .NET
    • Buttons, Labels and Textboxes
    • Handling Events
    • Listbox Controls

  • New Features in C# 2.0
    • Generic Types
    • Iterators
    • Partial Classes
    • Nullable Types
    • Anonymous Methods
    • Covariant and Contravariant Delegates
    • Simplified Delegate Instantiation
    • Accessor Accessibility
    • Namespace Alias Qualifier
    • Static Classes
    • extern
    • Fixed Size Buffers
    • Friend Assemblies
    • Compiler Pragma

  • C# 3.0 Features


5 days

Intended Audience:

The course is for experienced programmers who wish to become competent at writing C# programs in a .NET environment. It is intended to be accessible to programmers who do not already have a working knowledge of object-oriented programming in C-like languages, such as C++ or Java.

Technical Prerequisites:

Participants should have high-level language programming experience and a working knowledge of Microsoft Visual Studio.

Course Format:

Hands-on lecture/workshop

© Copyright 2004-2015 Institute for Advanced Professional Studies (IAPS)