Outline of the C sharp programming language
Appearance
From Wikipedia, the free encyclopedia
Overview of and topical guide to C#
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)
(Learn how and when to remove this message)This article relies excessively on references to primary sources . Please improve this article by adding secondary or tertiary sources.
Find sources: "Outline of the C sharp programming language" – news · newspapers · books · scholar · JSTOR (October 2025) (Learn how and when to remove this message)
Find sources: "Outline of the C sharp programming language" – news · newspapers · books · scholar · JSTOR (October 2025) (Learn how and when to remove this message)
This article may require cleanup to meet Wikipedia's quality standards. The specific problem is: use of inline external links. Please help improve this article if you can. (October 2025) (Learn how and when to remove this message)
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 ]See also: 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[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 ]See also: C Sharp syntax
- 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 ]See also: List of C# 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
[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
- Outline of C++
- Outline of the Java programming language
External links
[edit ]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.