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.
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 development 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 properties
General C# concepts
Issues, limits Garbage collection overhead Platform dependencies
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.
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#
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 Articles with example C# 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 Book
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
Comparison of C Sharp and Java Outline of computer programming Outline of software Outline of software engineering Outlines of other programming languages Outline of the C programming language Outline of the C++ programming language Outline of the Java programming language Outline of the JavaScript programming language Outline of the Perl programming language Outline of the Python programming language Outline of the Rust programming language
References
External links Official C# documentation Roslyn compiler GitHub repository Official .NET website
