Continuation of the Sharpist Project - Keep going with advanced C# topics and practical examples! π₯
- About
- Repository Structure
- Topics Covered
- Requirements
- Installation & Setup
- How to Use
- Learning Resources
- Contributing
- License
This repository is a comprehensive learning resource for advanced C# programming concepts. It serves as a continuation of the Sharpist project, diving deeper into object-oriented programming principles, design patterns, asynchronous programming, and modern C# features.
Key Features:
- π― Structured learning from fundamentals to advanced topics
- π» Practical, hands-on code examples for each concept
- π Well-documented projects with explanations
- ποΈ Real-world application patterns and best practices
- βοΈ Modern C# (10.0+) features and .NET 6.0+ support
The repository is organized into focused modules, each covering specific C# concepts:
CSharp/
βββ CSharp/ # Main C# project
βββ Addition/ # Additional topics and utilities
βββ Asynchronous/ # Async/await patterns and Task-based programming
βββ Collections/ # Working with List, Dictionary, Queue, etc.
βββ DLR/ # Dynamic Language Runtime examples
βββ FileSystem/ # File I/O and directory operations
βββ GarbageCollection/ # Memory management and GC concepts
βββ LINQ/ # Language Integrated Query examples
βββ MyApp/ # Sample application projects
βββ Parallel/ # Parallel processing and multi-threading
βββ Patterns/ # Design patterns (Singleton, Factory, etc.)
βββ Processes/ # Process management and system interaction
βββ REFlection/ # Reflection API and metaprogramming
βββ String/ # String manipulation and formatting
βββ Threading/ # Threading, locks, synchronization
βββ Times/ # DateTime, TimeSpan handling
βββ XML/ # XML parsing and manipulation
βββ README.md # This file
- ΠΡΠ½ΠΎΠ²Ρ ΠΠΠ (OOP Fundamentals)
- Classes and Objects
- Encapsulation (ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ)
- Inheritance (ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅)
- Polymorphism (ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ)
- Abstraction (ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ)
- Records - Immutable reference types with built-in equality
- Var - Implicit type inference
- Ref & Out Parameters - Advanced parameter passing
- Structs - Value types and their use cases
- Null-Safety & Nullable Types - Null reference safety
- Generics (ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ) - Type-safe collections and methods
- Pattern Matching - Modern control flow patterns
- LINQ - Query syntax and method chaining for data manipulation
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Async/Await) - Non-blocking I/O operations
- Attributes (ΠΡΡΠΈΠ±ΡΡΡ) - Metadata and compile-time behavior
- Collections - Built-in collection types and algorithms
- Threading - Multi-threaded programming and synchronization
- Parallel Processing - Parallel tasks and data processing
- Reflection - Runtime type inspection and dynamic invocation
- DLR - Dynamic Language Runtime for dynamic typing
- Design Patterns - Common solutions for recurring design problems
- File System - I/O operations and file handling
- XML Processing - Parsing and generating XML documents
- String Operations - Text manipulation and formatting
- Date & Time - DateTime and TimeSpan handling
- Garbage Collection - Memory management and cleanup strategies
- Process Management - System processes and inter-process communication
| Requirement | Version |
|---|---|
| .NET Framework | 6.0 or higher |
| C# Language | 10.0 or higher |
| IDE | Visual Studio 2022 / Visual Studio Code / JetBrains Rider |
| Runtime | .NET Runtime 6.0+ |
git clone https://github.com/Ismatjonov/CSharp.git
cd CSharpUsing .NET CLI:
dotnet buildUsing Visual Studio:
- Open
CSharp.slnin Visual Studio 2022 - Go to Build β Build Solution (Ctrl+Shift+B)
Run the entire solution:
dotnet runRun a specific project:
dotnet run --project ./CSharp/CSharp.csproj# Install C# extension if not already installed
# Open folder in VS Code
code .
# Run with F5 or Ctrl+F5- Start with the fundamentals: Begin with the OOP concepts if you're new to C#
- Explore examples: Each directory contains practical, runnable code examples
- Read the documentation: Comments and explanations are provided throughout the code
- Practice: Modify the examples and create your own variations
- Progress gradually: Move from basic to advanced topics
cd LINQ
dotnet runNavigate to the Threading/ directory to find examples of:
- Basic thread creation
- Thread synchronization
- Lock mechanisms
- Concurrent collections
- Official Documentation: Microsoft C# Documentation
- Tutorial Reference: Metanit C# Tutorial (Primary resource used)
- Interactive Learning: Microsoft Learn - C#
- .NET Official: dotnet.microsoft.com
Contributions are welcome! If you'd like to improve this repository:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
| Metric | Value |
|---|---|
| Primary Language | C# |
| Repository Type | Public |
| Status | Active Development |
| Last Updated | July 3, 2026 |
| Topics | csharp, csharp-code, learning-csharp, studying |
| License | Not specified |
This repository aims to:
β
Provide a comprehensive learning path for C# developers
β
Demonstrate best practices and design patterns
β
Offer practical, executable examples for each concept
β
Build a strong foundation in modern C# development
β
Support learners transitioning from basic to advanced topics
For questions or issues:
- Open an issue on GitHub
- Check existing documentation and comments in the code
- Reference the learning resources section
- Original Project: Sharpist
- Author: Ismatjonov
This is an educational repository designed for learning purposes. The code examples are meant to illustrate concepts and may not be production-ready in all cases.
Happy Learning! π Keep pushing your C# skills forward!
Last Updated: July 5, 2026