Chapter 1: Introduction to C#
- Lesson 1: What is C#?
- Lesson 2: History of C# and .NET
- Lesson 3: C# Applications and Use Cases
- Lesson 4: Setting Up the C# Environment
- Lesson 5: Writing Your First C# Program
- Lesson 6: Introduction to C# Syntax
- Lesson 7: Working with Visual Studio / Visual Studio Code
Chapter 2: Variables, Data Types, and Nullables
- Lesson 1: What are Variables in C#?
- Lesson 2: Declaring and Initializing Variables
- Lesson 3: Reserved Keywords in C#
- Lesson 4: Data Types: int, double, char, string, bool, etc.
- Lesson 5: Nullable Value Types and Nullable Reference Types
- Lesson 6: Constants and Read-only Fields
- Lesson 7: Type Inference with var
- Lesson 8: Differences Between Value Types and Reference Types
Chapter 3: Operators in C#
- Lesson 1: Arithmetic Operators
- Lesson 2: Relational and Comparison Operators
- Lesson 3: Logical Operators
- Lesson 4: Bitwise and Shift Operators
- Lesson 5: Assignment Operators
- Lesson 6: Increment and Decrement Operators
- Lesson 7: Null-Coalescing (??) and Null-Coalescing Assignment (??=)
- Lesson 8: Pattern Matching Operators (C# 8.0+)
Chapter 4: Control Structures
- Lesson 1: Introduction to Control Flow
- Lesson 2: if, else, and else-if Statements
- Lesson 3: switch-case Statement (Including switch Expressions)
- Lesson 4: Loops: for, while, and do-while
- Lesson 5: foreach Loop
- Lesson 6: Break, Continue, and Goto Statements
- Lesson 7: Pattern Matching in Control Statements (C# 8.0+)
Chapter 5: Functions and Methods
- Lesson 1: Introduction to Methods
- Lesson 2: Method Declaration and Invocation
- Lesson 3: Parameters: By Value, By Reference (ref, out)
- Lesson 4: Default and Named Arguments
- Lesson 5: Method Overloading
- Lesson 6: Lambda Expressions and Delegates
- Lesson 7: Anonymous Methods
- Lesson 8: Expression Trees and Advanced Delegates
- Lesson 9: Extension Methods
Chapter 6: Enumerations and Namespaces
- Lesson 1: Introduction to Enumerations
- Lesson 2: Declaring and Using Enums
- Lesson 3: Enum and Flags Attribute
- Lesson 4: Working with Namespaces
- Lesson 5: The Global Namespace and Aliases
Chapter 7: Arrays and Collections
- Lesson 1: Declaring and Initializing Arrays
- Lesson 2: Multidimensional and Jagged Arrays
- Lesson 3: Generic Collections: List, Dictionary, HashSet, Queue, Stack
- Lesson 4: Working with LINQ for Data Manipulation
- Lesson 5: Immutable Collections and ReadOnlyDictionary
Chapter 8: Working with Strings
- Lesson 1: Strings in C#: Basics
- Lesson 2: String Manipulation and Common Methods
- Lesson 3: StringBuilder for Performance
- Lesson 4: Regular Expressions in C#
- Lesson 5: Interpolated Strings (C# 6.0+)
Chapter 9: Object-Oriented Programming in C#
- Lesson 1: Introduction to OOP
- Lesson 2: Classes and Objects
- Lesson 3: Constructors and Destructors
- Lesson 4: Access Modifiers
- Lesson 5: Properties: Auto-Implemented and Computed Properties
- Lesson 6: Partial Classes and Methods
- Lesson 7: Records (C# 9.0+)
Chapter 10: Inheritance and Polymorphism
- Lesson 1: What is Inheritance?
- Lesson 2: Base and Derived Classes
- Lesson 3: Method Overriding
- Lesson 4: Abstract Classes and Methods
- Lesson 5: Interfaces in C#
- Lesson 6: Polymorphism and Casting
Chapter 11: Exception Handling
- Lesson 1: Basics of Exception Handling
- Lesson 2: try, catch, finally Blocks
- Lesson 3: Custom Exceptions
- Lesson 4: Exception Filters (C# 6.0+)
Chapter 12: Working with Dates and Time
- Lesson 1: Basics of DateTime
- Lesson 2: Working with TimeSpan
- Lesson 3: DateTimeOffset and Time Zones
- Lesson 4: Formatting and Parsing Dates
- Lesson 5: Working with System.Clock (C# 14+)
Chapter 1: Modern C# Features
- Lesson 1: Overview of Features (C# 7.0 - C# 10.0)
- Lesson 2: Pattern Matching Enhancements
- Lesson 3: Records and With-Expressions
- Lesson 4: File-Scoped Namespaces (C# 10.0)
- Lesson 5: Features from C# 11 to C# 14 (e.g., List Patterns, Parameter Null Checking)
Chapter 2: File I/O and Serialization
- Lesson 1: File Handling Basics
- Lesson 2: Working with Streams
- Lesson 3: JSON and XML Serialization
- Lesson 4: Binary Serialization
- Lesson 5: Asynchronous File Operations
Chapter 3: Performance Engineering
- Lesson 1: ValueTuple and Tuples
- Lesson 2: Span<T> and Memory<T>
- Lesson 3: Native Interoperability
- Lesson 4: Benchmarking and Profiling Code
Chapter 4: Asynchronous Programming
- Lesson 1: Introduction to Async and Await
- Lesson 2: Task and Task<T>
- Lesson 3: Cancellation Tokens
- Lesson 4: Parallel Programming with Parallel.ForEach
- Lesson 5: IAsyncEnumerable (C# 8.0+)
Chapter 5: Multithreading and Concurrency
- Lesson 1: Threading Basics
- Lesson 2: Using the Thread Class
- Lesson 3: Synchronization Techniques
- Lesson 4: The Task Parallel Library (TPL)
- Lesson 5: Parallel LINQ (PLINQ)
Chapter 6: Preprocessor Directives
- Lesson 1: Overview of Preprocessor Directives
- Lesson 2: Using #define, #if, and #elif
- Lesson 3: Conditional Compilation and Debugging
Chapter 7: Windows Forms Applications
- Lesson 1: Introduction to Windows Forms
- Lesson 2: Creating Your First Form
- Lesson 3: Controls and Event Handling
- Lesson 4: Building Multi-Form Applications
- Lesson 5: Advanced Topics in Windows Forms
Chapter 8: Creating Libraries in C#
- Lesson 1: Creating and Using Class Libraries
- Lesson 2: Packaging with NuGet
- Lesson 3: Versioning and Updating Libraries
Chapter 9: C# Design Patterns
- Lesson 1: What are Design Patterns?
- Lesson 2: Creational Patterns | Singleton, Factory Method, Abstract Factory, Builder, Prototype
- Lesson 3: Structural Patterns | Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- Lesson 4: Behavioral Patterns | Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Chapter 10: Testing and Unit Testing in C#
- Lesson 1: Introduction to Testing in Software Development
- Lesson 2: Getting Started with Unit Testing
- Lesson 3: Understanding MSTest Framework
- Lesson 4: NUnit Framework
- Lesson 5: xUnit Framework
- Lesson 6: Mocking in Unit Tests
- Lesson 7: Dependency Injection in Testing
- Lesson 8: Code Coverage and Analysis
- Lesson 9: Advanced Unit Testing Concepts
- Lesson 10: Integration and Functional Testing
- Lesson 11: Networking and Socket Programming in C#
- Lesson 12: Continuous Integration (CI) and Testing
Chapter 11: Networking and Socket Programming in C#
- Lesson 1: Introduction to Networking in C#
- Lesson 2: Working with HttpClient
- Lesson 3: TCP Client-Server Programming
- Lesson 4: UDP Client-Server Programming
- Lesson 5: Working with WebSockets
- Lesson 6: Advanced Socket Programming
- Lesson 7: Network Programming Utilities
- Lesson 8: Working with REST APIs
- Lesson 9: Building a Simple Chat Application
- Lesson 10: Performance Optimization in Network Programming
- Lesson 11: Testing and Debugging Networking Code
Chapter 12: Cryptography and Security in C#
- Lesson 1: Introduction to Cryptography and Security
- Lesson 2: Symmetric Encryption
- Lesson 3: Asymmetric Encryption
- Lesson 4: Hashing and Message Digests
- Lesson 5: Digital Signatures
- Lesson 6: Protecting Sensitive Data
- Lesson 7: Certificates and Secure Communication
- Lesson 8: Encryption in Configuration and Files
- Lesson 9: Modern Cryptographic Techniques
- Lesson 10: Secure Random Number Generation
- Lesson 11: Authentication and Authorization
- Lesson 12: Best Practices for Application Security
- Lesson 13: Testing and Debugging Security Code
Chapter 13: Making Charts and Reports in C#
- Lesson 1: Introduction to Charts and Reporting
- Lesson 2: Creating Charts with Windows Forms
- Lesson 3: Generating Charts with WPF
- Lesson 4: Using Third-Party Chart Libraries
- Lesson 5: Generating Reports with Crystal Reports
- Lesson 6: Working with Reporting Tools in ASP.NET Core
- Lesson 7: Creating Custom Reports with RDLC
- Lesson 8: Data Visualization with Power BI and C#
- Lesson 9: Exporting Charts and Reports
- Lesson 10: Building a Reporting Dashboard
- Lesson 11: Performance Optimization in Reporting
- Lesson 12: Testing and Debugging Charts and Reports
Chapter 14: Advanced Topics
- Lesson 1: Reflection and Dynamic Types
- Lesson 2: Attributes and Metadata
- Lesson 3: Unsafe Code and Pointers
- Lesson 4: Advanced Debugging Techniques