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 Common Language Runtime (CLR) 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 (VM) environment, the .NET Common Language Runtime (CLR), 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, limits
edit- Garbage collection overhead[40]
- Platform dependencies[41]
C# toolchain
editCompilers
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
editC# 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
editNotable 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
editC# publications
editBooks 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
editWikibooks 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
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.