• Technical IT

    Solutions delivered throughout the UK
  • Business Applications

    Solutions delivered throughout the UK
  • Professional Best Practice

    Solutions delivered throughout the UK
  • Professional Development

    Solutions delivered throughout the UK

The Microsoft C# 4.0 Programming Language

  • Price £1,995.00
  • Duration 4 day(s)
All major credit cards accepted


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.


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 Windows keyboard skills and an ability to ‘leave the mouse alone’ are an absolute necessity.


Delegates will learn how 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)

Course Content

Module 1: Introduction to .NET & C#

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

Module 2: Language Fundamentals

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

Module 3: Types I

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;

Module 4: Types II

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

Module 5: Exception Handling

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

Module 6: Inheritance & Polymorphism

Concept of inheritance; Substitutability; Extending a simple class;
‘virtual’, ‘override’ and ‘sealed’ modifiers
Upcasting and safe downcasting;

Module 7: Abstract Classes & Interfaces

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

Module 8: Generics & Collections

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

Module 9: Delegates & Events

Delegates explained;
Working with delegates;
Creating your own delegate types;
Event handling delegates;
Evolution of syntax for creating delegate instances;
Key generic delegates of the FCL;
Lambda expressions;

Module 10: Getting Started with LINQ

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

Module 11: More LINQ

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

Module 12: The Way Ahead

Follow-on courses

Appendix Module: Namespaces & Assemblies

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

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

Appendix Module: C# & .NET timeline

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

Appendix Module: Managing Resources

Garbage collection and its impacts; Finalizers; The ‘Dispose’ pattern; IDisposable; The Using statement

Appendix Module: Working with Files

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

Appendix Module: Working with Data

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

Appendix Module: Working with Text

Class String; Class StringBuilder; Formatting Strings; Regular Expressions

Make Enquiry

Course Enquiry

Book Now

Course Enquiry