Lecture 1 |
introduction, history of C# language, .NET platform, namespaces introductory example |
Lecture 2 |
classes - static members, access modifiers, constants, readonly fields, inheritance, virtual methods, abstract classes, sealed classes, constructors, finalizers, new operator example - "factory" methods |
Lecture 3 |
reference and value types, structures, tuples, parameters, method overloading, deconstruction example - reference and value types example - tuples and deconstruction example - parameters example - method overloading |
Lecture 4 |
conversions, is and as operators, local functions, enumeration types example - conversions and operations on dynamic variables |
Lecture 5 |
user-defined operators and conversions, properties, indexers example - complex numbers example - indexers |
Lecture 6 |
interfaces, foreach statement, yield iterators, extension methods example - foreach statement and yield iterators example - stack "with foreach": version without yield iterators version using yield iterators Main method example - extension methods |
Lecture 7 |
generic types, nullable and non-nullable types, operators related to null example - nullable and non-nullable reference types |
Lecture 8 |
delegates, anonymous methods and lambda expressions example - sorting by different comparison criteria example - anonymous methods and lambda expressions example - outer variables in loops example - complex numbers with expression-bodied members |
Lecture 9 |
exceptions, using and lock statements, checked and unchecked example - exceptions example - exceptions with when clauses (C# 6.0) example - using statement |
Lecture 10 |
event driven programming, asynchronous and parallel programming example - events - timer example - synchronous computations example - asynchronous computations example - parallel loops |
Lecture 11 |
streams and files, serialization, string class, formatting, StringBuilder class example - serialization example - "partial" serialization example - user-defined formatting example - operations on objects of string and StringBuilder types - efficiency comparison |
Lecture 12 |
LINQ technology (part I) - introduction, query expressions, clauses example - select clause example - join and join...into clauses |
Lecture 13 |
LINQ technology (part II) - query expressions continuations, IEnumerable interface extension methods, Parallel LINQ (PLINQ) example - varied joins (including cross joins) example - query expressions - efficiency comparison example - IEnumerable interface extension methods example - Parallel LINQ (PLINQ) |
Lecture 14 |
unsafe code, C# and C/C++ interoperability example - C# and C/C++ interoperability: C++ source code C# source code example - C#/C callback invocations: C source code C# source code |