Outline of the C sharp programming language

From HandWiki
Short description: Programming language

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#?

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

Issues / Limitations

  • Garbage collection overhead[40]
  • Platform dependencies [41]

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#

Example source code

C# publications

Books about C#

  • Andrew Troelsen – Pro C# and the .NET Platform
  • Bill Wagner – Effective C#
  • Herbert SchildtC#: 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]
  • 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

Competitive programming

  • LeetCode — supports C# submissions
  • HackerRank — includes C# challenges
  • Codeforces — supports C# in contests

See also

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

  1. "C# Guide - .NET managed language". https://learn.microsoft.com/en-us/dotnet/csharp/. 
  2. https://www.geeksforgeeks.org/csharp-programming-language-introduction/ [yes|permanent dead link|dead link}}]
  3. "C# - a modern, open-source programming language | .NET". https://dotnet.microsoft.com/en-us/languages/csharp. 
  4. "Introduction - C# language specification". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/introduction. 
  5. "The history of C#". https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history. 
  6. "Assemblies in .NET - .NET". https://learn.microsoft.com/en-us/dotnet/standard/assembly/. 
  7. "Attributes - C# language specification". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/attributes. 
  8. "Async and Await in C#". August 1, 2022. https://www.geeksforgeeks.org/c-sharp/async-and-await-in-c-sharp/. 
  9. "Asynchronous programming - C#". https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/. 
  10. "Classes and objects tutorial - C#". https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/tutorials/classes. 
  11. "Collections - C# reference". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/collections. 
  12. "Work with delegate types in C# - C#". https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/. 
  13. "Encapsulation in C#". October 15, 2018. https://www.geeksforgeeks.org/c-sharp/encapsulation-in-c-sharp/. 
  14. "Events - C#". https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/events/. 
  15. "Exception Handling - C#". https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/exceptions/exception-handling. 
  16. ".NET garbage collection - .NET". https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/. 
  17. "Garbage Collection in C# | .NET Framework". April 17, 2019. https://www.geeksforgeeks.org/c-sharp/garbage-collection-in-c-sharp-dot-net-framework/. 
  18. "C# generics (With Examples)". https://www.programiz.com/csharp-programming/generics. 
  19. "Generic classes and methods - C#". https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/types/generics. 
  20. "Tutorial: Introduction to Inheritance - C#". https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/tutorials/inheritance. 
  21. "Interfaces - define behavior for multiple types - C#". https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/types/interfaces. 
  22. "Lambda Expressions in C#". September 20, 2019. https://www.geeksforgeeks.org/c-sharp/lambda-expressions-in-c-sharp/. 
  23. "Language Integrated Query (LINQ) - C#". https://learn.microsoft.com/en-us/dotnet/csharp/linq/. 
  24. "C# Memory Management". September 19, 2025. https://www.geeksforgeeks.org/c-sharp/c-memory-management/. 
  25. "Memory management and patterns in ASP.NET Core". https://learn.microsoft.com/en-us/aspnet/core/performance/memory?view=aspnetcore-9.0. 
  26. "Namespaces - C# language specification". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/namespaces. 
  27. "Nullable reference types - C#". https://learn.microsoft.com/en-us/dotnet/csharp/nullable-references. 
  28. "Operator overloading - Define unary, arithmetic, equality, and comparison operators. - C# reference". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/operator-overloading. 
  29. "Pattern matching overview - C#". https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/pattern-matching. 
  30. "Properties - C#". https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties. 
  31. "Records - C# reference". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/record. 
  32. "Reflection in .NET". https://learn.microsoft.com/en-us/dotnet/fundamentals/reflection/reflection. 
  33. "Serialization - .NET". https://learn.microsoft.com/en-us/dotnet/standard/serialization/. 
  34. "Structs - C# language specification". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/structs. 
  35. "Using threads and threading - .NET". https://learn.microsoft.com/en-us/dotnet/standard/threading/using-threads-and-threading. 
  36. "Task-based asynchronous programming - .NET". https://learn.microsoft.com/en-us/dotnet/standard/parallel-programming/task-based-asynchronous-programming. 
  37. Chand, Mahesh. "Type Inference in C#". https://www.c-sharpcorner.com/uploadfile/mahesh/type-inference-in-c-sharp/. 
  38. Kumar, Ravi Ranjan. "A Basic Introduction To C# Unit Test For Beginners". https://www.c-sharpcorner.com/article/a-basic-introduction-of-unit-test-for-beginners/. 
  39. "Reference types - C# reference". https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/reference-types. 
  40. "Garbage Collection and Performance - .NET". https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/performance. 
  41. "Dependency loading - .NET". https://learn.microsoft.com/en-us/dotnet/core/dependency-loading/overview. 
  42. ".NET CLI". https://learn.microsoft.com/en-us/dotnet/core/tools/. 
  43. "Home | BenchmarkDotNet". https://benchmarkdotnet.org/. 
  44. "Top C# Books recommended by experts - MentorCruise". https://mentorcruise.com/books/csharp/. 

Template:C sharp programming language