Course Code: 19148

C# Essentials

Class Dates:
2 Days
Class Time:
Instructor-Led Training, Virtual Instructor-Led Training


  • Course Overview
  • This course concisely covers the essentials of programming using Microsoft’s C# programming language. It starts with an overview of .NET architecture and the basics of running C# programs in a .NET environment. The next two chapters cover C# language essentials and object-oriented programming in C#. The next chapter discusses how C# relates to the .NET Framework. The following chapter covers delegates and events. The course includes a succinct introduction to creating GUI programs using Windows Forms. The course concludes with a chapter covering the newer features in C#. Appendices provide a tutorial on Visual Studio 2019, an overview of LINQ, and coverage of unsafe code and pointers in C#.
  • Audience
  • Programmers who need to design and develop C# for the .NET framework.


  • The student should be an experienced application developer or architect. Some background in object-oriented programming would be helpful.

Course Details

  • Mode 1 - Introduction to .NET
  • What Is .NET
  • Libraries and Tools, Application Models, Managed Code
  • .NET Programming in a Netshell, Visual Studio 2019, Sign In
  • Creating a Console Application, Configure Your new Project,
  • Program.cs Starter Code, Using the Visual Studio Text Editor
  • IntelliSense, Build the Project,
  • Run the project
  • Pausing the Output
  • Visual C# and GUI Programs
  • .NET Documentation
  • Mode 2 - C# Overview for the Sophisticated Programmer
  • Hello, World, Compiling, Running (Command Line)
  • Program Structure, Namespaces, Variables, Input in C#
  • More about Classes, Input Wrapper Class, Sample Program
  • Input Wrapper Implementation, Compiling Multiple Files
  • control Structures, Switch, C# Operators
  • Precedence Table, Types in C#, Simple Types, Types in System Namespace
  • Integer Data Types, Floating Point Data Types
  • Implicit Conversions, Explicit Conversions
  • Boolean, Data Type, Struct, Uninitialized Variables, Nullable Types
  • Reference Types, Class Types, Object, String, Copying Strings, StringBuilder Class, Classes and Structs, Static and Instance Methods
  • Method Parameters, No "Freestanding" Functions in C#, Classes with All Static Methods, Parameter Passing, Terminology
  • Value, Reference Parameters, Example, Structure, Class Parameters
  • .
  • Method Overloading, Variable Length Parameter Lists, Arrays, One-Dimensional Arrays
  • System Array, Jagged Arrays, Rectangular Arrays, Foreach for Arrays
  • Boxing and Unboxing, Implicitly Typed Variables, Implicitly Typed Variables - Example
  • Output in C#, Formatting, Formatting Example,
  • Checked Integer Arithmetic, Throwing New Exceptions
  • LAB 2
  • Mode 3 - Object-Oriented Programming in C#
  • C# Object-Oriented Features, Encapsulation and Accessors
  • Asymmetric Accessor Accessibility, Using a Property, Indexers, Visual Studio Console Projects
  • Files in Skeleton Solutions, Source Files, Bank Example, Account Class, Constructors
  • Static members, Static in Main, Static Constructor
  • Constant and Read-only Fields, Auto-Implemented Properties, Auto-Implemented property Example
  • Inheritance in C#, New Version of base Class, Features of the New Base Class
  • Derived Class, Overriding a Virtual Function
  • Abstract Classes, Keyword: abstract
  • Derived Class, Overriding a Virtual Function, Abstract Classes
  • Keyword: abstract, Derived Class, Test Program, Sealed Classes
  • Access Control and Assemblies, Internal Accessibility, Assembly Example
  • Class Libraries, LAB 3
  • Mode 4 - C# and the .NET Framework
  • Components and OO in C#, Interfaces in C#, Interface Inheritance
  • Programming with Interfaces, Implementing Interfaces
  • Using an Interface, Example: Small Interface, Dynamic Uses of Interfaces
  • Example: TryInterfaces, is Operator, as Operator, Resolving Ambiguity,
  • Explicit Interface Implementation, Test Program, System.Object
  • Collections, Arry List, Methods, Example: StringList,
  • IEnumberable and IEnumerator, Using Enumerators, Collections of User-Defined Objects
  • Account Class, List Class, Copy Semantics in C#, Deep Copy and ICloneable, LAB 4A
  • Writing Generic Code, Using a Class of object, Generic Types
  • Generic Syntax in C#, Example, Client Code, System, Collections, Generic LAB4B
  • Object Initializers, Anonymous Types
  • Attribute, Attribute Usage Example
  • Mode - 5 - Delegates and Events
  • Overview of Delegates and Events, Callbacks and Delegates
  • Usage of Delegates, Declaring a Delegate, Defining a Method
  • Creating a Delegate Object, Calling a Delegate, Random Number Generation
  • A Random Array, Anonymous Methods, Combining Delegate Objects
  • Account.cs, DelegateAccount.cs, Lambda Expressions, Named Method
  • Anonymous Method, Lambda Expression Example
  • Events, Events in C# and .NET, Client Side Event Code
  • Chat Room Example
  • LAB 5
  • Mode - 6 - Introduction to Windows Forms
  • Creating a Windows Forms App
  • Partial Classes
  • Windows Forms Event Handling
  • Add Events for a Control
  • Events Documentation
  • Closing a Form, ListBox Control, ListBox Example
  • LAB 6
  • Mode 7 - Newer Features in C#
  • Dynamic Type, Runtime Error Example, Dynamic versus object
  • Behavior of object, of dynamic, Named Aruments, Optional Arguments
  • Book Class, Using Optional Arguments, Variance in Generic Interfaces
  • Covariance Example, Variance with IComputer , Interfaces with Variance Support
  • Contravariance Example, Asynchronous Programs in C#5.0, Task and Task
  • Aysnc Methods, Async Example, Synchronous Call, Asynce Call, Threading
  • New Features in C# 6.0, Null-Conditional Operator, composite Format String
  • Interpolated Strings,
  • New Features in C# 7.0, Tuples
  • Nullable Reference Types in C# 8.0
  • Nullable Reference Example Program.
  • Using Visual Studio 2019
  • Visual Studio 2019 community, Modifying Visual Studio
  • Visual Studio Sign in, Sign In Advantages,
  • Visual Studio Start Page, A visual Studio Solution, Toolbars
  • Customizing a Toolbar, Creating a Console App, Adding a C# File
  • Using the Visual Studio Text Editor, Build and Run the Bytes Project
  • Running the Bytes Project, Executable File Location, Managing Configurations
  • Project Configuration Build Settings, Debugging, Breakpoints
  • Watch Variables, Debug Toolbar, Stepping with the Debugger,
  • Demo: Stepping with the Debugger, Call Stack and Call Hierarchy, Multiple-Project Solution Demo
  • Adding a Reference, Project Dependencies
  • Startup Project, Hidden Files
  • Language Integrated Query (LINQ)
  • Language-Integrated Query (LINQ)
  • LINQ Example
  • Using IEnumerable
  • Basic LINQ Query Operators
  • Obtaining a Data Source
  • LINQ Query Example
  • Filtering, Ordering, Aggregation
  • Obtaining Lists and Arrays
  • Deferred Execution
  • Unsafe Code and Pointers in C#
  • Unsafe Code
  • Unsafe Blocks
  • Unsafe Option in Visual Studio
  • Pointers, Swapping Via Pointers
  • Fixed Memory
  • Fixed memory Illustration