This repo. has C# code I have implemented to achieve a good understanding of the .net & c# language features, and it is based on many resources, and i will mention the main of them:
- Pro C# 7 With .NET and .NET Core (Authors: Troelsen, Andrew, Japikse, Philip)
- C# 7.0 in a Nutshell: The Definitive Reference by Joseph Albahari (Author), Ben Albahari (Author)
-
Core C# Programming Constructs
- DataTypes Basics
- Methods Basics
- ControlFlow
- Arrays
- Strings
- DateTime
-
Object Oriented Programming
- Encapsulation
- Inheritance
- Polymorphism
- Interfaces
-
Exception Handling
- Understanding Structured Exception Handling
- Without Exception Handling Mechanism
- Throw Exception Without Handling - Catching Exceptions
- Custom Exception Class With Strongly-Typed Prperties
- Custom Exception Class With Strongly-Typed Prperties: Message Passed To base Constructor
- Multiple Catch Clauses - General Catch - Rethrowing Exceptions - The finally Block - Exception Filters"
-
Generics
- Creating Custom Generic Methods
- Inference of Type Parameters
- Creating Custom Generic Structures
- Creating Custom Generic Classes
- The default Keyword in Generic Code
- Constraining Type Parameters
- Multiple Type Parameter, and Multiple Where Clauses
-
Collections
- Introduction to Collections and Generics
- Nongeneric collections (System.Collections namespace)
- Boxing and Unboxing
- The Problems of Nongeneric Collections
- A First Look at Generic Collections
- The Role of Generic Type Parameters
- Specifying Type Parameters for Generic Interfaces
- The System.Collections.Generic Namespace
- Understanding Collection Initialization Syntax
- Working with the List Class
- Sorting a List
- Binary Search On a List
- LinkedList Class, Stack Class, Queue Class, HashSet Class, SortedSet Class
- Dictionary Class, SortedDictionary Class
- ObservableCollection Class, ReadOnlyObservableCollection Class
-
Delegates, Events, and Lambda Expressions
- Introduction to .Net Delegates
- The C# delegate keyword represents a sealed class deriving from System.MulticastDelegate
- The System.MulticastDelegate and System.Delegate Base Classes
- Callback by Interface
- Sending Object State Notifications Using Delegates
- Method Group Conversion Syntax
- Understanding Generic Delegates
- The Generic Action<> and Func<> Delegates
- The Problem With Class's public Delegate Member Variables
- The C# event Keyword
- Creating Custom Event Arguments - EventArgs Base Class
- The Generic EventHandler Delegate
-
Advanced C# Language Features
- Tuples
- Nullables
-
LINQ To Objects
-
Object Lifetime
-
type reflection, late Binding, and attriBute-Based programming
-
Dynamic Types and the Dynamic Language Runtime
-
Processes, AppDomains, and Object Contexts
-
Multithreaded, Parallel, and Async Programming