explaingit

dotnet/csharplang

12,598C#Audience · developerComplexity · 1/5Setup · easy

TLDR

The public home for designing the C# programming language, feature proposals, design meeting notes, and language specifications. Not a runnable library, it is where you follow or contribute to how C# evolves.

Mindmap

mindmap
  root((csharplang))
    What It Is
      Feature proposals
      Design meeting notes
      Language specification
    Proposal Process
      Open discussion first
      Champion required
      Multiple review stages
    Outcomes
      Accepted features
      Deferred proposals
      Rejected ideas
    Audience
      C# developers
      Language researchers
      Microsoft design team
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Follow the C# design process to understand why a language feature works the way it does.

USE CASE 2

Submit a proposal for a new C# language feature by opening a GitHub discussion topic.

USE CASE 3

Research how programming language decisions get made by reading the design team's meeting notes.

Tech stack

C#

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

This repository is the official home for designing the C# programming language. It is not a software library or a tool you run. Instead, it is a public record of how the C# language evolves: proposals for new features, notes from design meetings, and the specifications that describe what the language does. The C# Language Design Team at Microsoft holds regular meetings to discuss proposed changes to the language. Notes from those meetings are stored here, and the community can follow along or contribute ideas through discussions on GitHub. If someone wants to suggest a new feature, the process starts with opening a discussion topic rather than submitting a pull request directly. A proposal only moves forward if a member of the design team agrees to champion it. Proposals go through several stages: initial discussion, prototype implementation, full specification, and finally inclusion in a numbered C# version. Not every proposal makes it through. Some are deferred, some are rejected, and a separate milestone tracks ideas the team has decided are unlikely to ever be included. The repository also links to the formal language specification, which lives in a separate Microsoft repository, and to the Roslyn compiler, which is the reference implementation of C#. For developers curious about where C# is heading, or researchers interested in programming language design, this repository provides a transparent view into how decisions get made about one of the most widely used programming languages.

Copy-paste prompts

Prompt 1
Summarize the current status of the C# language proposal for pattern matching improvements based on the csharplang GitHub discussions.
Prompt 2
Explain the difference between the C# language specification in csharplang and the Roslyn compiler implementation.
Prompt 3
How do I write a well-formed C# language feature proposal that has a realistic chance of being championed by the design team?
Open on GitHub → Explain another repo

← dotnet on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.