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 Common Language Runtime (CLR) 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, limits

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

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