Outline of the C sharp programming language
Appearance
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
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 runtime environment.[1][2][3]
What type of language is C#?
[edit]- 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 environment (.NET runtime) that handles memory management via garbage collection
- Object-oriented programming language
History of C#
[edit]- Anders Hejlsberg — lead architect and creator of C#
- Microsoft — developer and maintainer of C#
- 2000 — C# first appeared as part of .NET Framework development[4]
- 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[5]
General C# concepts
[edit]- Assemblies[6]
- Attributes[7]
- Async/await[8]
- Asynchronous programming[9]
- Classes and objects[10]
- Collections[11]
- Delegates[12]
- Encapsulation[13]
- Events[14]
- Exception handling[15]
- Garbage collection[16][17]
- Generics[18][19]
- Inheritance[20]
- Interfaces[21]
- Lambdas[22]
- Language Integrated Query[23]
- Memory management[24][25]
- Namespaces[26]
- Nullable type[27]
- Operator overloading[28]
- Pattern matching[29]
- Properties[30]
- Records[31]
- Reflection[32]
- Serialization[33]
- Structs[34]
- Threads[35] and tasks[36]
- Type inference[37]
- Unit testing[38]
- Value type and reference type[39]
Issues / Limitations
[edit]- Garbage collection overhead[40]
- Platform dependencies [41]
C# toolchain
[edit]Compilers
[edit]- 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
[edit]- 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
[edit]- .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
[edit]- 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#
[edit]- Unity
- VS Code extensions
- Godot with C# scripting support
- Microsoft Office add-ins
- Visual Studio Tools for Office
Example source code
[edit]C# publications
[edit]Books about C#
[edit]- 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[44]
C# dialects and related languages
[edit]- 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
[edit]- Introduction to C#
- Official Microsoft C# documentation
- C# overview page
- W3Schools – C# tutorials
- GeeksforGeeks – C# basics
Competitive programming
[edit]- LeetCode — supports C# submissions
- HackerRank — includes C# challenges
- Codeforces — supports C# in contests
See also
[edit]Wikibooks has a book on the topic of: C Sharp Programming
- 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
[edit]- ^ "C# Guide - .NET managed language". learn.microsoft.com.
- ^ https://www.geeksforgeeks.org/csharp-programming-language-introduction/ [permanent dead link]
- ^ "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.