# Mastering C# | Series (Part-1 to Part 12)

## Welcome to This Banger Series of C# Tutorial with Framework level projects

Almost everything you need to know to get started with C# is covered in this series. Whether you are a beginner or brushing up on your skills, this guide will help you grasp key concepts with clarity.

### **Table of Contents**

| **Part** | **Topic** | **Link** | Contents |
| --- | --- | --- | --- |
| Part 1.1 | Introduction to C# | [https://blog.nishantbanjade.com.np/mastering-c-part-11](https://blog.nishantbanjade.com.np/mastering-c-part-11) | Internal workings of C#, MSIL, CLI, JIT Compilation |
| Part 1.2 | Introduction to C# | [https://blog.nishantbanjade.com.np/mastering-c-part-12](https://blog.nishantbanjade.com.np/mastering-c-part-12) | Garbage collections |
| Part 2.1 | Fundamentals | [https://blog.nishantbanjade.com.np/mastering-c-part-21-fundamentals](https://blog.nishantbanjade.com.np/mastering-c-part-21-fundamentals) | Keywords, Data types,Variables |
| Part 2.2 | Fundamentals | [https://blog.nishantbanjade.com.np/mastering-c-part-22-fundamentals](https://blog.nishantbanjade.com.np/mastering-c-part-22-fundamentals) | Access Modifiers, Operators, Params, Type castings |
| Part 2.3 | Fundamentals | [https://blog.nishantbanjade.com.np/mastering-c-part-23-fundamentals](https://blog.nishantbanjade.com.np/mastering-c-part-23-fundamentals) | Enumeration, Structs, Nullable, Conditional and Jump statements |
| Part 3.1 | Methods Part-1 | [https://blog.nishantbanjade.com.np/mastering-c-part-31-methods](https://blog.nishantbanjade.com.np/mastering-c-part-31-methods) | Introduction, Method overloading, Method returning an object |
| Part 3.2 | Methods Part-2 | [https://blog.nishantbanjade.com.np/mastering-c-part-32-methods-part-2](https://blog.nishantbanjade.com.np/mastering-c-part-32-methods-part-2) | Anonymous , Partial, Extension, Local Methods, Delegates, Predicates, Actions, Func |
| Part 3.3 | Indexers and Properties | [https://blog.nishantbanjade.com.np/mastering-c-part-33-indexers-properties](https://blog.nishantbanjade.com.np/mastering-c-part-33-indexers-properties) | Complete Indexers & Properties concept with examples |
| Part 4 | Generics | [https://blog.nishantbanjade.com.np/mastering-c-part-4-generics](https://blog.nishantbanjade.com.np/mastering-c-part-4-generics) | Generics, Generics Interfaces, Generic Collections, Covariance and Contravariance, Repository patterns, Generic classes with multiple parameters, Generic Factories |
| Part 5.1 | Collections - Generic namespace | [https://blog.nishantbanjade.com.np/mastering-c-part-51-collections-part-1](https://blog.nishantbanjade.com.np/mastering-c-part-51-collections-part-1) | HashSet&lt;T&gt;, LinkedList&lt;T&gt;, List&lt;T&gt;, SortedSet&lt;T&gt;, Dictionary&lt;TKey, TValue&gt;, SortedDictionary&lt;TKey, TValue&gt; , Stack&lt;T&gt;, Queue&lt;T&gt; |
| Part 5.2 | Collections- Collection Namespace | [https://blog.nishantbanjade.com.np/mastering-c-part-52-collections](https://blog.nishantbanjade.com.np/mastering-c-part-52-collections) | Array, ArrayList, HashTable, Hashtable vs DIctionary, BitArray, SortedList, |
|  |  |  |  |
| Part 5.3 | Tuples | [https://blog.nishantbanjade.com.np/mastering-c-part-53-tuples](https://blog.nishantbanjade.com.np/mastering-c-part-53-tuples) | Tuples, Tuple&lt;T1, T2, … Tn&gt;, Indexers(position based), Named Properties, Tuple Deconstruction, Equality and comparisons, Limitations |
| Part 6 | Exception Handlings | [https://blog.nishantbanjade.com.np/mastering-c-part-6-exception-handling](https://blog.nishantbanjade.com.np/mastering-c-part-6-exception-handling) | Try-catch, Specific exceptions, Multiple exceptions, Filtering exceptions, Finally, Custom Exceptions, Throwing exceptions, Exception Hierarchy, Best practices |
| Part-7. 1 | Object Oriented Programming in C# (Part1) | [https://blog.nishantbanjade.com.np/mastering-c-part-71-object-oriented-programming](https://blog.nishantbanjade.com.np/mastering-c-part-71-object-oriented-programming) | Objects, Classes, Static class, Partial class, Abstract class, Sealed class, Nested Class, Generic class, Anonymous class, Bindings(Early, Late), Constructor, this keyword, constructor overloading, Overloading with chaining |
| Part- 7.2 | Object Oriented Programming in C# (Part2) | [https://blog.nishantbanjade.com.np/mastering-c-part-72-object-oriented-programming](https://blog.nishantbanjade.com.np/mastering-c-part-72-object-oriented-programming) | Inheritance (Single inheritance, Multilevel, Hierarchical, Multiple inheritance, Overriding with virtual keyword, Base keyword, Abstract |
| Part- 7.3 | Object Oriented Programming in C# (Part3) | [https://blog.nishantbanjade.com.np/mastering-c-part-73-object-oriented-programming](https://blog.nishantbanjade.com.np/mastering-c-part-73-object-oriented-programming) | Interface, Types of Interface, Abstract vs Interfaces, Dependency Inversions, Marker Interface, Polymorphism, Delegate vs Interface |
| Part-8 | Multi threading programming |  |  |
| Part-9 | SOLID design principle | [https://github.com/nixhantb/design-patterns-csharp](https://github.com/nixhantb/design-patterns-csharp) | Single Responsibility , Open closed, Liskov Substitution, Interface Segregation, Dependency Inversion |
| Part-10 | Project -1 (Injectron Engine) | [https://github.com/nixhantb/InjectTron/tree/main/InjectTron.Core](https://github.com/nixhantb/InjectTron/tree/main/InjectTron.Core) | Entire dependency Injection in pure C# from scratch without a single library (DIContainer, LifetimeManager, ServiceCollection, Service Descriptor) |
| Part-11 | Project -2 (Custom Message Broker system in plain C# like Kafka and RabbitMQ) | [https://github.com/nixhantb/QuantumMQ](https://github.com/nixhantb/QuantumMQ) | Load balancer, Topics, IP Hashing, Producers, Subscribers, Broker instances (Yes all from scratch) |
| Part-12 | Project-3 (Build your own search Engine in pure C# without any library) | Coming soon | [https://en.wikipedia.org/wiki/Tf%E2%80%93idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) |

**What next?**

Data structures and Algorithms

Design Patterns

Stay tuned, and let’s embark on this exciting journey of mastering C#!
