The following outline is provided as an overview of and topical guide to C#:
C# (pronounced “C-sharp”) is a free and open-source multi-paradigm programming language developed by Microsoft as part of its .NET initiative. C# was designed by Anders Hejlsberg and first appeared in 2000 with the release of .NET Framework. The language emphasizes type safety, component-oriented programming, and modern object-oriented programming concepts. C# syntax is similar to C++ and Java, but is tightly integrated with the .NET Common Language Runtime (CLR) environment.123
What type of language is C#?
- Programming language – artificial language designed to communicate instructions to a computer
- Compiled language – compiled to Common Intermediate Language and executed by the Common Language Runtime
- General-purpose programming language
- Imperative programming – paradigm using statements that change program state, focusing on how to perform computation.
- Functional programming – treating computation as evaluation of functions, avoiding mutable state, focusing on what to compute.
- Component-oriented programming – reusable components with well-defined interfaces for modularity and code reuse.
- Statically typed programming language – type checking performed at compile time
- Managed code – runs in a virtual machine (VM) environment, the .NET Common Language Runtime (CLR), that handles memory management via garbage collection
- Object-oriented programming language
History of C#
- Anders Hejlsberg – lead architect and creator of C#
- Microsoft – developer and maintainer of C#
- 2000 – C# first appeared as part of .NET Framework development4
- 2002 – C# 1.0 released with Visual Studio .NET
- 2007 – C# 3.0 added LINQ, lambda expressions, and extension methods
- 2012 – C# 5.0 added async and await and caller info attributes
- 2015 – C# 6.0 added expression-bodied members, string interpolation, and Roslyn.
- 2014 – .NET Core introduced as an open-source and cross-platform implementation
- 2020 – .NET 5 unified .NET Framework and .NET Core
- 2024 – C# 13 added params collections and partial properties5
General C# concepts
- Assemblies6
- Attributes7
- Async/await8
- Asynchronous programming9
- Classes and objects10
- Collections11
- Delegates12
- Encapsulation13
- Events14
- Exception handling15
- Garbage collection1617
- Generics1819
- Inheritance20
- Interfaces21
- Lambdas22
- Language Integrated Query23
- Memory management2425
- Namespaces26
- Nullable type27
- Operator overloading28
- Pattern matching29
- Properties30
- Records31
- Reflection32
- Serialization33
- Structs34
- Threads35 and tasks36
- Type inference37
- Unit testing38
- Value type and reference type39
Issues, limits
- Garbage collection overhead40
- Platform dependencies41
C# toolchain
Compilers
- Roslyn – open-source compiler platform for C# and VB.NET
- Mono – cross-platform implementation of C# and .NET
- Bartok – experimental AOT compiler by Microsoft Research
- CoreRT – .NET Foundation project for AOT and JIT compilation
- IL2CPU – AOT compiler used by the COSMOS operating system
- RemObjects C# – AOT compiler supporting multiple platforms
- RyuJIT – JIT compiler used in .NET Core and .NET 5+
- SharpDevelop – open-source IDE and C# compiler under LGPL
- Visual C# – Microsoft’s primary JIT compiler for C#
- Visual C# Express – freeware edition of Visual C# for beginners
- Portable.NET – discontinued AOT compiler from the DotGNU project
Build and package management
- MSBuild – Microsoft’s official build engine
- NuGet – official .NET package manager and registry
- dotnet CLI – command-line interface for building, running, and publishing C# applications.42
C# libraries and frameworks
- .NET Standard – specification ensuring API compatibility across .NET implementations
- ASP.NET Core – framework for building web applications and APIs
- Entity Framework Core – object-relational mapper (ORM)
- Xamarin – framework for building cross-platform mobile applications
- Blazor – framework for building interactive web UIs with C#
- Unity – game engine using C# as its primary scripting language
Testing and benchmarking
- xUnit – popular open-source testing framework
- NUnit – testing framework for .NET
- MSTest – Microsoft’s built-in test framework
- BenchmarkDotNet – library for performance benchmarking in C#43
Notable projects written in C#
- Unity
- VS Code extensions
- Godot with C# scripting support
- Microsoft Office add-ins
- Visual Studio Tools for Office
Example source code
C# publications
Books about C#
- Andrew Troelsen – Pro C# and the .NET Platform
- Bill Wagner – Effective C#
- Herbert Schildt – C#: A Beginner's Guide and C# 4.0: The Complete Reference
- Jeff Prosise – Programming Microsoft .NET
- Jeffrey Richter – CLR via C#
- Jennifer Greene – Head First C#
- Jon Skeet – C# in Depth
- Mark J. Price – C# 12 and .NET 8 – Modern Cross-Platform Development
- Rob Miles – The C# Programming Yellow Book44
C# dialects and related languages
- Visual Basic .NET – shares the same runtime and type system
- F# – functional-first language on the .NET platform
- PowerShell – built on .NET and C#
- Q# – quantum programming language from Microsoft influenced by C#
C# learning resources
- Introduction to C#
- Official Microsoft C# documentation
- C# overview page
- W3Schools – C# tutorials
- GeeksforGeeks – C# basics
Competitive programming
- LeetCode – supports C# submissions
- HackerRank – includes C# challenges
- Codeforces – supports C# in contests
See also
See also
- Comparison of C Sharp and Java
- Outline of computer programming
- Outline of software
- Outline of software engineering
- Outlines of other programming languages
References
References
- "C# Guide – .NET managed language". learn.microsoft.com.
- https://www.geeksforgeeks.org/csharp-programming-language-introduction/
- "C# – a modern, open-source programming language – .NET". Microsoft.
- "Introduction – C# language specification". learn.microsoft.com.
- "The history of C#". learn.microsoft.com.
- "Assemblies in .NET – .NET". learn.microsoft.com.
- "Attributes – C# language specification". learn.microsoft.com.
- "Async and Await in C#". GeeksforGeeks. August 1, 2022.
- "Asynchronous programming – C#". learn.microsoft.com.
- "Classes and objects tutorial – C#". learn.microsoft.com.
- "Collections – C# reference". learn.microsoft.com.
- "Work with delegate types in C# – C#". learn.microsoft.com.
- "Encapsulation in C#". GeeksforGeeks. October 15, 2018.
- "Events – C#". learn.microsoft.com.
- "Exception Handling – C#". learn.microsoft.com.
- ".NET garbage collection – .NET". learn.microsoft.com.
- "Garbage Collection in C# | .NET Framework". GeeksforGeeks. April 17, 2019.
- "C# generics (With Examples)". www.programiz.com.
- "Generic classes and methods – C#". learn.microsoft.com.
- "Tutorial: Introduction to Inheritance – C#". learn.microsoft.com.
- "Interfaces – define behavior for multiple types – C#". learn.microsoft.com.
- "Lambda Expressions in C#". GeeksforGeeks. September 20, 2019.
- "Language Integrated Query (LINQ) – C#". learn.microsoft.com.
- "C# Memory Management". GeeksforGeeks. September 19, 2025.
- "Memory management and patterns in ASP.NET Core". learn.microsoft.com.
- "Namespaces – C# language specification". learn.microsoft.com.
- "Nullable reference types – C#". learn.microsoft.com.
- "Operator overloading – Define unary, arithmetic, equality, and comparison operators. – C# reference". learn.microsoft.com.
- "Pattern matching overview – C#". learn.microsoft.com.
- "Properties – C#". learn.microsoft.com.
- "Records – C# reference". learn.microsoft.com.
- "Reflection in .NET". learn.microsoft.com.
- "Serialization – .NET". learn.microsoft.com.
- "Structs – C# language specification". learn.microsoft.com.
- "Using threads and threading – .NET". learn.microsoft.com.
- "Task-based asynchronous programming – .NET". learn.microsoft.com.
- Chand, Mahesh. "Type Inference in C#". www.c-sharpcorner.com.
- Kumar, Ravi Ranjan. "A Basic Introduction To C# Unit Test For Beginners". www.c-sharpcorner.com.
- "Reference types – C# reference". learn.microsoft.com.
- "Garbage Collection and Performance – .NET". learn.microsoft.com.
- "Dependency loading – .NET". learn.microsoft.com.
- ".NET CLI". learn.microsoft.com.
- "Home | BenchmarkDotNet". benchmarkdotnet.org.
- "Top C# Books recommended by experts – MentorCruise". mentorcruise.com.