The Microsoft C# 4.0 Programming Language

4 Day Course
Hands On

Book Now - 1 Delivery Method Available:

Scheduled Online Onsite


Microsoft’s .NET Framework presents developers with unprecedented opportunities. From web applications to desktop and mobile platform applications – all can be built with equal ease, using substantially the same skill-set.  But to make the most of this potential, developers must have a thorough grasp of core language skills and OO programming concepts.

This course is intended for developers who will use C# to write .NET Framework applications and who are new to the C# programming language. This includes those currently working with Visual Basic 6.0, C++ or Java.

This four-day workshop concentrates on the C# programming language itself, to prepare delegates fully in readiness for exploring the .NET Framework.  From basic procedural syntax to sophisticated object-oriented programming techniques, delegates will learn how to write .NET applications with code that is robust and maintainable.

The course is presented as a mixture of lectures and hands-on exercises. Practical sessions follow all main topics, designed to reinforce the points covered. Additional information is provided in appendices to extend the learning experience after the course has been completed.

At the end of this course, you will be able to:

  • Write efficient procedural code that includes sequence, selection and iteration constructs
  • Create and use classes and structures (types), including fields, properties and methods
  • Use private, internal, protected and public visibility modifiers
  • Build exception-handling into methods, to create robust, user-friendly applications
  • Create derived classes that inherit from custom-written or .NET Framework classes
  • Create interfaces and apply techniques of polymorphism effectively and appropriately
  • Work with generic types
  • Define and use C# indexers
  • Understand the role of delegates in event handling
    Recognise the huge role of (generic) delegates in the .NET FCL beyond event handling
  • Use lambda expressions effectively in C# 3.0 code
  • Make use of the major C# 3.0 feature - LINQ (Language Integrated Query)
  • Version assemblies and know how .NET searches and loads the correct DLL's(Appendix)
  • Efficiently manage resources (Appendix)
  • See the role of Attributes in .NET as metadata that can be 'reflected' upon (Appendix)

Training Partners

We work with the following best of breed training partners using our bulk buying power to bring you a wider range of dates, locations and prices.


Hide all

ntroduction to .NET & C# (2 topics)

  • The .NET Framework; The Common Language Runtime; The Common Type System
  • C# Features; Introduction to namespaces and assemblies

Language Fundamentals (3 topics)

  • Procedures and statements; Data types; Declaring variables; Assignments
  • Conversion; Arithmetic and other operators
  • Control constructs; by value, by reference, named and optional parameters

Types I (5 topics)

  • Type concepts; Classes; Reference types
  • Fields, properties and methods; C#3 Auto-implemented properties
  • Accessibility modifiers; Construction and chaining
  • Instance members; Keyword 'this'
  • The 'null' reference

Types II (6 topics)

  • Structs; Value types
  • Object Initialisers
  • Static; Const & ReadOnly
  • The Singleton & Factory patterns
  • Partial classes
  • Enumerated types

Exception Handling (2 topics)

  • Errors vs. Exceptions; The 'try' block; The 'catch' block; The 'finally' block; Using 'throw'
  • Creating your own exceptions; 'checked' and 'unchecked' expressions.

Inheritance & Polymorphism (4 topics)

  • Concept of inheritance; Substitutability; Extending a simple class
  • 'virtual', 'override' and 'sealed' modifiers
  • Polymorphism
  • Upcasting and safe downcasting

Abstract Classes & Interfaces (2 topics)

  • Abstract classes; Abstract methods and properties
  • Polymorphism with interfaces; Multiple interfaces

Generics & Collections (8 topics)

  • Arrays vs Collections; Array syntax
  • Generic concepts; Using Generic collection classes; List
  • Generic interfaces; IComparable, IComparer & sorting
  • Indexers; C# Iterators, IEnumerable, IEnumerator
  • Using generic methods
  • Co & Contra-variance
  • Constraints; Nullable types
  • Boxing / UnBoxing issues

Delegates & Events (6 topics)

  • Delegates explained
  • Working with delegates
  • Creating your own delegate types
  • Events
  • Evolution of syntax for creating delegate instances
  • Generic delegates

Getting Started with LINQ (4 topics)

  • The various C#3 language features that act as LINQ enablers;
  • The Func Delegate family including Func <T,TResult>
  • The LINQ API and query pattern;
  • LINQ to Objects

More LINQ (3 topics)

  • Grouping; Joins; LINQ to XML;
  • LINQ to SQL;
  • Overview of LINQ to Entities

Module 12: The Way Ahead (2 topics)

  • Review
  • Follow-on courses

Appendix Module: Namespaces & Assemblies (3 topics)

  • Namespaces; The 'using' statement for namespaces; Assemblies
  • DLLs at compile time and run Time; The Global Assembly Cache (GAC)
  • Versioning using public/private key cryptography

Appendix Module: Operator Overloading (3 topics)

  • Why operator overloading is useful
  • When to overload
  • Implicit conversions; explicit conversions

Appendix Module: C# & .NET timeline (2 topics)

  • Which versions/functionality came when
  • C# syntax changes by version

Appendix Module: Managing Resources (5 topics)

  • Garbage collection and its impacts
  • Finalizers
  • The 'Dispose' pattern
  • IDisposable
  • The Using statement

Appendix Module: Working with Files (5 topics)

  • System.IO namespace
  • File & Directory classes
  • Streams
  • Readers & Writers
  • Compressing and Decompressing Data

Appendix Module: Working with Data (5 topics)

  • ADO.NET architecture
  • Connections & Commands
  • Using DataReaders
  • Using DataSets
  • Managed Providers

Appendix Module: Working with Text (3 topics)

  • Class String; Class StringBuilder
  • Formatting Strings
  • Regular Expressions


Delegates must understand the fundamentals of programming and should have some existing knowledge of object oriented programming concepts. This is a course for developers. Good keyboard skills are an absolute necessity.

or call:408-759-5074

Alternatively you can request a callback or schedule a call with a Training Advisor

Course PDF


Share this Course


Recommend this Course