Skip to content

Conversation

meaghanlewis
Copy link
Contributor

@meaghanlewis meaghanlewis commented Oct 13, 2025

Summary

This pull request updates and improves the documentation for expression trees and asynchronous programming in C#. The changes focus on clarifying explanations, updating terminology to be more consistent and modern, and correcting minor language issues for better readability.

Documentation improvements:

  • Updated the ms.date metadata in both docs/csharp/advanced-topics/expression-trees/index.md and docs/csharp/asynchronous-programming/task-asynchronous-programming-model.md to reflect new revision dates. [1] [2]
  • Replaced outdated or unclear terminology, such as changing "topic" to "article," and improved descriptions for async programming concepts throughout task-asynchronous-programming-model.md. [1] [2] [3] [4] [5] [6] [7]

Language and clarity enhancements:

  • Improved sentence structure and wording for better readability, such as clarifying how async methods work, updating examples, and refining explanations of threading and naming conventions. [1] [2] [3] [4] [5] [6]
  • Fixed minor grammatical issues and made explanations more concise, such as replacing "proves especially valuable" with clearer phrasing, and updating references to synchronous and asynchronous behavior. [1] [2] [3]

Terminology consistency:

  • Standardized usage of terms like "article" instead of "topic," "doesn't" instead of "does not," and "extra threads" instead of "additional threads" for consistency across the documentation. [1] [2] [3] [4] [5]

Fixes #48470


Internal previews

Toggle expand/collapse
📄 File 🔗 Preview link
docs/csharp/advanced-topics/expression-trees/index.md Expression Trees
docs/csharp/asynchronous-programming/task-asynchronous-programming-model.md The Task Asynchronous Programming (TAP) model with async and await"
docs/csharp/fundamentals/coding-style/identifier-names.md C# identifier naming rules and conventions
docs/csharp/fundamentals/object-oriented/inheritance.md Inheritance - derive types to create more specialized behavior
docs/csharp/fundamentals/object-oriented/objects.md docs/csharp/fundamentals/object-oriented/objects
docs/csharp/fundamentals/object-oriented/polymorphism.md Polymorphism
docs/csharp/fundamentals/tutorials/oop.md "Object-Oriented Programming"
docs/csharp/fundamentals/types/anonymous-types.md Anonymous types
docs/csharp/fundamentals/types/classes.md docs/csharp/fundamentals/types/classes
docs/csharp/fundamentals/types/generics.md Generic classes and methods
docs/csharp/fundamentals/types/index.md The C# type system
docs/csharp/fundamentals/types/interfaces.md "Interfaces - define behavior for multiple types"
docs/csharp/programming-guide/classes-and-structs/access-modifiers.md Access Modifiers (C# Programming Guide)
docs/csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md Named and Optional Arguments (C# Programming Guide)
docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers
docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md Static Classes and Static Class Members (C# Programming Guide)
docs/csharp/programming-guide/concepts/index.md "Programming Concepts"
docs/csharp/programming-guide/generics/constraints-on-type-parameters.md Constraints on type parameters (C# Programming Guide)
docs/csharp/programming-guide/types/boxing-and-unboxing.md docs/csharp/programming-guide/types/boxing-and-unboxing

@meaghanlewis meaghanlewis marked this pull request as ready for review October 14, 2025 16:52
@meaghanlewis meaghanlewis requested review from a team and BillWagner as code owners October 14, 2025 16:52
@Copilot Copilot AI review requested due to automatic review settings October 14, 2025 16:52
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request comprehensively updates C# documentation for improved consistency and readability. The changes modernize language throughout multiple articles, standardize terminology, and correct grammatical issues to enhance the overall quality and professionalism of the documentation.

  • Updated date metadata to reflect current revision dates across all files
  • Standardized contractions and terminology ("isn't" vs "is not", "might" vs "may", etc.)
  • Enhanced clarity in explanations of async programming, object-oriented concepts, and language features

Reviewed Changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated no comments.

Show a summary per file
File Description
docs/csharp/programming-guide/types/boxing-and-unboxing.md Updated metadata date and improved contractions
docs/csharp/programming-guide/generics/constraints-on-type-parameters.md Updated date and expanded "CLR" abbreviation
docs/csharp/programming-guide/concepts/index.md Updated metadata date only
docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md Updated date and improved contractions
docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md Enhanced clarity in explanations and updated terminology
docs/csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md Standardized contractions and improved example references
docs/csharp/programming-guide/classes-and-structs/access-modifiers.md Updated date and corrected punctuation
docs/csharp/fundamentals/types/interfaces.md Standardized modal verbs and improved contractions
docs/csharp/fundamentals/types/index.md Updated contractions and terminology
docs/csharp/fundamentals/types/generics.md Updated metadata date only
docs/csharp/fundamentals/types/classes.md Updated date and expanded "CLR" abbreviation
docs/csharp/fundamentals/types/anonymous-types.md Comprehensive improvements to contractions and clarity
docs/csharp/fundamentals/tutorials/oop.md Enhanced readability and updated terminology
docs/csharp/fundamentals/object-oriented/polymorphism.md Standardized modal verbs and improved contractions
docs/csharp/fundamentals/object-oriented/objects.md Updated terminology and improved contractions
docs/csharp/fundamentals/object-oriented/inheritance.md Standardized contractions and improved clarity
docs/csharp/fundamentals/coding-style/identifier-names.md Added introductory content and fixed code snippet language identifiers
docs/csharp/asynchronous-programming/task-asynchronous-programming-model.md Extensive terminology updates and clarity improvements
docs/csharp/advanced-topics/expression-trees/index.md Updated date and standardized contractions

Copy link
Member

@BillWagner BillWagner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great @meaghanlewis

I had a number of minor comments on word choice based on the history of how some features have evolved.

I also loaded each of the articles and looked at the existing code. In all cases, the code is fine, but I see a number of opportunities where we can modernize the examples.

This would expand the scope of this PR, so we can either make the changes, or log this for the future:

  • In the "Inheritance" article, the WorkItem class could be simplified using primary constructors and field initializers.
  • In the "Objects" article, the Person struct can be simplified with the addition of parameterless constructors and field initializers
  • In the "Polymorphism" article, the get; private set; properties could be changed to get; init; to emphasize that the object doesn't change after creation.
  • In "Polymorphism", the collections could use collection initializers instead of "new"
  • In Polymorphism, there are a lot of opportunities for expression bodied members (this is true in several samples)
  • A lot of code in "object and collection initializers" could be simplified using collection expressions and expression bodied properties.

The easiest way to find and address these might be to load the projects in Visual Studio and see the suggestions from the IDE.

Let's discuss if you want to expand the scope of this PR, or note these changes for later. If we want to note them for later, I'll approve this now.

@meaghanlewis meaghanlewis marked this pull request as draft October 15, 2025 17:27
@meaghanlewis meaghanlewis marked this pull request as ready for review October 16, 2025 20:48
Copy link
Member

@BillWagner BillWagner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had two suggestions where the (now better) code doesn't match the syntax being described. Once you accept those, :shipit:.

This is awesome!

meaghanlewis and others added 2 commits October 16, 2025 14:16
…tic-classes-and-static-class-members/Program.cs

Co-authored-by: Bill Wagner <[email protected]>
@meaghanlewis meaghanlewis enabled auto-merge (squash) October 16, 2025 21:36
@meaghanlewis meaghanlewis merged commit 817cee9 into dotnet:main Oct 16, 2025
8 checks passed
@meaghanlewis meaghanlewis deleted the freshness-pass-csharp branch October 16, 2025 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Freshness Opportunities for C# - FY26Q2

2 participants