/
aprogrammer
/
dotnet-docs
Обзор
Документация
Войти
/
aprogrammer
/
dotnet-docs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
docs/csharp/toc.yml
677 строк
31 KB
skycommand
Update toc.yml for consistency (#43586)
15 ноя 2024, 21:06
Не верифицирован
15 ноя 2024, 21:06
043b3c1
Код
Авторство
О чём код?
items: - name: C# documentation href: tour-of-csharp/index.yml - name: Get started items: - name: Tour of C# href: tour-of-csharp/overview.md - name: Learn C# for Java developers href: tour-of-csharp/tips-for-java-developers.md - name: Learn C# for JavaScript developers href: tour-of-csharp/tips-for-javascript-developers.md - name: Learn C# for Python developers href: tour-of-csharp/tips-for-python-developers.md - name: C# language strategy href: tour-of-csharp/strategy.md - name: Tutorials items: - name: Choose your first lesson href: tour-of-csharp/tutorials/index.md - name: Browser based tutorials items: - name: Hello world href: tour-of-csharp/tutorials/hello-world.yml - name: Numbers in C# href: tour-of-csharp/tutorials/numbers-in-csharp.yml - name: Branches and loops href: tour-of-csharp/tutorials/branches-and-loops.yml - name: List collections href: tour-of-csharp/tutorials/list-collection.yml - name: Work in your local environment items: - name: Set up your environment href: tour-of-csharp/tutorials/local-environment.md - name: Numbers in C# href: tour-of-csharp/tutorials/numbers-in-csharp-local.md - name: Branches and loops href: tour-of-csharp/tutorials/branches-and-loops-local.md - name: List collections href: tour-of-csharp/tutorials/arrays-and-collections.md - name: Fundamentals items: - name: Program structure items: - name: Overview href: fundamentals/program-structure/index.md - name: Main method href: fundamentals/program-structure/main-command-line.md - name: Top-level statements href: fundamentals/program-structure/top-level-statements.md - name: Type system items: - name: Overview href: fundamentals/types/index.md - name: Namespaces href: fundamentals/types/namespaces.md # TODO: tuples - name: Classes href: fundamentals/types/classes.md # TODO: Edit Records article so it doesn't depend on classes. - name: Records href: fundamentals/types/records.md # TODO: structs - name: Interfaces href: fundamentals/types/interfaces.md - name: Generics href: fundamentals/types/generics.md - name: Anonymous Types href: fundamentals/types/anonymous-types.md # TODO: Delegates, lambdas and events - name: Object-oriented programming items: - name: Classes, structs, and records href: fundamentals/object-oriented/index.md - name: Objects href: fundamentals/object-oriented/objects.md - name: Inheritance href: fundamentals/object-oriented/inheritance.md # Encapsulation & composition - name: Polymorphism href: fundamentals/object-oriented/polymorphism.md - name: Functional techniques items: # - Conceptual overview # - Expressions (how different than OO and expressions?) # - separation of data & algorithms # - immutability (emphasize constructors & passing data to constructor, get/init) # - Functional purity / functions as arguments or return values # In F#, discussion of "object programming" -> objects become more sophisticated records. # - language features: # - Lambdas # - Positional records as DTOs - name: Pattern matching href: fundamentals/functional/pattern-matching.md - name: Discards href: fundamentals/functional/discards.md - name: Deconstructing tuples and other types href: fundamentals/functional/deconstruct.md - name: Exceptions and errors items: - name: Overview displayName: exceptions href: fundamentals/exceptions/index.md - name: Using exceptions href: fundamentals/exceptions/using-exceptions.md - name: Exception handling href: fundamentals/exceptions/exception-handling.md - name: Creating and throwing exceptions href: fundamentals/exceptions/creating-and-throwing-exceptions.md - name: Compiler-generated exceptions href: fundamentals/exceptions/compiler-generated-exceptions.md - name: Coding style items: - name: C# identifier names href: fundamentals/coding-style/identifier-names.md - name: C# coding conventions href: fundamentals/coding-style/coding-conventions.md - name: Tutorials items: - name: "How to display command-line arguments" href: fundamentals/tutorials/how-to-display-command-line-arguments.md # TODO: Command line processing tutorials # TODO: DTOs (tuples, anonymous types and records) # TODO: Values (record structs and structs) # TODO: Classes and objects (interfaces and classes) # TODO: Generics (methods and classes) # TODO: Fundamentals of using lambdas - name: Introduction to classes href: fundamentals/tutorials/classes.md - name: Object-oriented C# href: fundamentals/tutorials/oop.md # Composing objects from parts - name: Inheritance in C# and .NET href: fundamentals/tutorials/inheritance.md # programming to interfaces - name: Converting types displayName: cast, is, as href: fundamentals/tutorials/safely-cast-using-pattern-matching-is-and-as-operators.md - name: Build data-driven algorithms with pattern matching href: fundamentals/tutorials/pattern-matching.md # separating data and algorithms # Data transformations ## TODO: Replace with a tutorial (include async exceptions) - name: "How to handle an exception using try-catch" href: fundamentals/exceptions/how-to-handle-an-exception-using-try-catch.md - name: "How to execute cleanup code using finally" href: fundamentals/exceptions/how-to-execute-cleanup-code-using-finally.md - name: What's new in C# items: - name: C# 13 items: - name: What's new in C# 13 href: whats-new/csharp-13.md - name: Breaking changes since C# 12 href: ../../_roslyn/docs/compilers/CSharp/Compiler%20Breaking%20Changes%20-%20DotNet%209.md - name: C# 12 items: - name: What's new in C# 12 href: whats-new/csharp-12.md - name: Breaking changes since C# 11 href: ../../_roslyn/docs/compilers/CSharp/Compiler%20Breaking%20Changes%20-%20DotNet%208.md - name: C# 11 items: - name: What's new C# 11 href: whats-new/csharp-11.md - name: Breaking changes since C# 10 href: ../../_roslyn/docs/compilers/CSharp/Compiler%20Breaking%20Changes%20-%20DotNet%207.md - name: C# 10 items: - name: New features in C# 10 href: whats-new/csharp-10.md - name: Breaking changes since earlier versions href: whats-new/breaking-changes.md - name: C# version history href: whats-new/csharp-version-history.md - name: Relationships to .NET library href: whats-new/relationships-between-language-and-library.md - name: Version compatibility href: whats-new/version-update-considerations.md - name: Tutorials items: - name: Explore primary constructors href: whats-new/tutorials/primary-constructors.md - name: Explore static interface members href: whats-new/tutorials/static-virtual-interface-members.md - name: Explore patterns in objects href: whats-new/tutorials/patterns-objects.md - name: Write a custom string interpolation handler href: whats-new/tutorials/interpolated-string-handler.md - name: Tutorials items: - name: Explore record types href: tutorials/records.md - name: Explore top-level statements href: tutorials/top-level-statements.md - name: Explore indexes and ranges href: tutorials/ranges-indexes.md - name: Work with nullable reference types href: tutorials/nullable-reference-types.md - name: Explore string interpolation - interactive href: tutorials/exploration/interpolated-strings.yml - name: Explore string interpolation - in your environment href: tutorials/exploration/interpolated-strings-local.md - name: Advanced scenarios for string Interpolation href: tutorials/string-interpolation.md - name: Console Application href: tutorials/console-teleprompter.md - name: REST Client href: tutorials/console-webapiclient.md - name: Work with LINQ href: tutorials/working-with-linq.md - name: Language-Integrated Query (LINQ) items: - name: Overview of LINQ href: linq/index.md - name: Getting Started with LINQ in C# items: - name: Introduction to LINQ queries href: linq/get-started/introduction-to-linq-queries.md - name: Query expression basics href: linq/get-started/query-expression-basics.md - name: Write LINQ queries href: linq/get-started/write-linq-queries.md - name: Type relationships in LINQ query operations href: linq/get-started/type-relationships-in-linq-query-operations.md - name: C# features that support LINQ href: linq/get-started/features-that-support-linq.md - name: "Tutorial: Writing queries in C#" href: linq/get-started/walkthrough-writing-queries-linq.md - name: Standard query operators items: - name: Overview href: linq/standard-query-operators/index.md - name: Filter data href: linq/standard-query-operators/filtering-data.md - name: Projection operations href: linq/standard-query-operators/projection-operations.md - name: Set operations href: linq/standard-query-operators/set-operations.md - name: Sort data href: linq/standard-query-operators/sorting-data.md - name: Quantifier operations href: linq/standard-query-operators/quantifier-operations.md - name: Partition data href: linq/standard-query-operators/partitioning-data.md - name: Convert data types href: linq/standard-query-operators/converting-data-types.md - name: Join operations href: linq/standard-query-operators/join-operations.md - name: Group data href: linq/standard-query-operators/grouping-data.md - name: How-to articles items: - name: "How to: LINQ and file directories" href: linq/how-to-query-files-and-directories.md - name: "How to: LINQ and strings" href: linq/how-to-query-strings.md - name: "How to: LINQ and collections" href: linq/how-to-query-collections.md - name: How to extend LINQ with new methods href: linq/how-to-extend-linq.md - name: How to build dynamic queries at run time href: linq/how-to-build-dynamic-queries.md - name: Asynchronous programming items: - name: Overview displayName: asynchronous programming, async, await href: asynchronous-programming/index.md - name: Asynchronous programming scenarios href: asynchronous-programming/async-scenarios.md - name: Task asynchronous programming model href: asynchronous-programming/task-asynchronous-programming-model.md - name: Async return types displayName: Task, Task<T>, ValueTask, ValueTask<T> href: asynchronous-programming/async-return-types.md - name: Process asynchronous tasks as they complete href: asynchronous-programming/start-multiple-async-tasks-and-process-them-as-they-complete.md - name: Asynchronous file access href: asynchronous-programming/using-async-for-file-access.md - name: Cancel a list of tasks href: asynchronous-programming/cancel-an-async-task-or-a-list-of-tasks.md - name: Cancel tasks after a period of time href: asynchronous-programming/cancel-async-tasks-after-a-period-of-time.md - name: Generate and consume asynchronous streams href: asynchronous-programming/generate-consume-asynchronous-stream.md - name: C# concepts items: - name: Nullable reference types href: nullable-references.md - name: Nullable reference migrations href: nullable-migration-strategies.md - name: Methods href: methods.md - name: Iterators href: iterators.md - name: Delegates & events items: - name: Introduction to delegates href: delegates-overview.md - name: System.Delegate and the delegate keyword href: delegate-class.md - name: Strongly typed delegates href: delegates-strongly-typed.md - name: Common patterns for delegates href: delegates-patterns.md - name: Introduction to events href: events-overview.md - name: Standard .NET event patterns href: event-pattern.md - name: The updated .NET event pattern href: modern-events.md - name: Distinguish delegates and events href: distinguish-delegates-events.md - name: Versioning href: versioning.md - name: How-to C# articles items: - name: Article index displayName: how to's href: how-to/index.md - name: Split strings into substrings href: how-to/parse-strings-using-split.md - name: Concatenate strings href: how-to/concatenate-multiple-strings.md - name: Search strings href: how-to/search-strings.md - name: Modify string contents href: how-to/modify-string-contents.md - name: Compare strings href: how-to/compare-strings.md - name: "How to catch a non-CLS exception" href: how-to/how-to-catch-a-non-cls-exception.md - name: Advanced topics items: - name: Reflection and attributes items: - name: Overview displayName: attributes, reflection href: advanced-topics/reflection-and-attributes/index.md - name: Create custom attributes href: advanced-topics/reflection-and-attributes/creating-custom-attributes.md - name: Access attributes using reflection href: advanced-topics/reflection-and-attributes/accessing-attributes-by-using-reflection.md - name: "How to create a C/C++ union by using attributes" href: advanced-topics/reflection-and-attributes/how-to-create-a-c-cpp-union-by-using-attributes.md - name: Generics and attributes href: advanced-topics/reflection-and-attributes/generics-and-attributes.md - name: "How to query an assembly's metadata with reflection and LINQ" href: advanced-topics/reflection-and-attributes/how-to-query-assembly-metadata-with-reflection-linq.md - name: Generics and reflection href: advanced-topics/reflection-and-attributes/generics-and-reflection.md - name: "Tutorial: Define and use attributes" href: advanced-topics/reflection-and-attributes/attribute-tutorial.md - name: Interface implementations items: - name: Safely update interfaces with default interface methods href: advanced-topics/interface-implementation/default-interface-methods-versions.md - name: Create mixin functionality with default interface methods href: advanced-topics/interface-implementation/mixins-with-default-interface-methods.md - name: Expression trees items: - name: Overview displayName: expression trees href: advanced-topics/expression-trees/index.md - name: Expression Trees Explained href: advanced-topics/expression-trees/expression-trees-explained.md - name: Framework Types Supporting Expression Trees href: advanced-topics/expression-trees/expression-classes.md - name: Execute expressions href: advanced-topics/expression-trees/expression-trees-execution.md - name: Interpret expressions href: advanced-topics/expression-trees/expression-trees-interpreting.md - name: Build expressions href: advanced-topics/expression-trees/expression-trees-building.md - name: Translate expressions href: advanced-topics/expression-trees/expression-trees-translating.md - name: Debug expression trees in Visual Studio href: advanced-topics/expression-trees/debugging-expression-trees-in-visual-studio.md - name: DebugView Syntax href: advanced-topics/expression-trees/debugview-syntax.md - name: Supplemental API - Expression class add method href: ../fundamentals/runtime-libraries/system-linq-expressions-expression-add.md - name: Supplemental API - BinaryExpression class href: ../fundamentals/runtime-libraries/system-linq-expressions-binaryexpression.md - name: Native interoperability items: - name: Overview href: advanced-topics/interop/index.md - name: Example COM class href: advanced-topics/interop/example-com-class.md - name: "Walkthrough: Office programming" href: advanced-topics/interop/walkthrough-office-programming.md - name: "Use platform invoke to play a WAV file" href: advanced-topics/interop/how-to-use-platform-invoke-to-play-a-wave-file.md - name: "Use indexed properties in COM interop programming" href: advanced-topics/interop/how-to-use-indexed-properties-in-com-interop-programming.md - name: "Access Office interop objects" href: advanced-topics/interop/how-to-access-office-interop-objects.md - name: "Use named and optional arguments in Office programming" href: advanced-topics/interop/how-to-use-named-and-optional-arguments-in-office-programming.md - name: Using type 'dynamic' href: advanced-topics/interop/using-type-dynamic.md - name: "Walkthrough: Creating and using dynamic objects" href: advanced-topics/interop/walkthrough-creating-and-using-dynamic-objects.md - name: Performance engineering items: - name: Overview href: advanced-topics/performance/index.md - name: Tutorial - reduce allocations href: advanced-topics/performance/ref-tutorial.md - name: The .NET Compiler Platform SDK (Roslyn APIs) items: - name: The .NET Compiler Platform SDK (Roslyn APIs) overview href: roslyn-sdk/index.md - name: Understand the compiler API model href: roslyn-sdk/compiler-api-model.md - name: Work with syntax href: roslyn-sdk/work-with-syntax.md - name: Work with semantics href: roslyn-sdk/work-with-semantics.md - name: Work with a workspace href: roslyn-sdk/work-with-workspace.md - name: Explore code with the syntax visualizer href: roslyn-sdk/syntax-visualizer.md - name: Choose diagnostic IDs href: roslyn-sdk/choosing-diagnostic-ids.md - name: Quick starts items: - name: Syntax analysis href: roslyn-sdk/get-started/syntax-analysis.md - name: Semantic analysis href: roslyn-sdk/get-started/semantic-analysis.md - name: Syntax Transformation href: roslyn-sdk/get-started/syntax-transformation.md - name: Tutorials items: - name: Build your first analyzer and code fix href: roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix.md # Taken from https://github.com/dotnet/roslyn/wiki/Samples-and-Walkthroughs # - name: Get started writing custom analyzers and code fixes # - name: Tutorials # items: # - name: Build your first analyzer # - name: Build your first code fix # - name: Deploy your analyzer as a VSIX # - name: Deploy your analyzer as a NuGet package #- name: Samples # Taken from https://github.com/dotnet/roslyn/wiki/Samples-and-Walkthroughs # items: # - name: Async packages # - name: Console classifier # - name: Convert to auto property # - name: Format solution # - name: Implement notify property changed # - name: Make const # - name: How to guides # Look at the samples, and determine which are "How To" vs. Samples. - name: C# programming guide items: - name: Programming concepts items: - name: Overview displayName: programming concepts href: programming-guide/concepts/index.md - name: Covariance and contravariance items: - name: Overview displayName: covariance and contravariance href: programming-guide/concepts/covariance-contravariance/index.md - name: Variance in Generic Interfaces href: programming-guide/concepts/covariance-contravariance/variance-in-generic-interfaces.md items: - name: Create Variant Generic Interfaces href: programming-guide/concepts/covariance-contravariance/creating-variant-generic-interfaces.md - name: Use Variance in Interfaces for Generic Collections href: programming-guide/concepts/covariance-contravariance/using-variance-in-interfaces-for-generic-collections.md - name: Variance in Delegates href: programming-guide/concepts/covariance-contravariance/variance-in-delegates.md items: - name: Use Variance in Delegates href: programming-guide/concepts/covariance-contravariance/using-variance-in-delegates.md - name: Use Variance for Func and Action Generic Delegates href: programming-guide/concepts/covariance-contravariance/using-variance-for-func-and-action-generic-delegates.md - name: Iterators href: programming-guide/concepts/iterators.md - name: Statements, expressions, and equality items: - name: Statements href: programming-guide/statements-expressions-operators/statements.md - name: Expression-bodied members href: programming-guide/statements-expressions-operators/expression-bodied-members.md - name: Equality and equality comparisons items: - name: Equality comparisons href: programming-guide/statements-expressions-operators/equality-comparisons.md - name: "How to define value equality for a type" href: programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type.md - name: "How to test for reference equality (identity)" href: programming-guide/statements-expressions-operators/how-to-test-for-reference-equality-identity.md - name: Types items: - name: Casting and Type Conversions href: programming-guide/types/casting-and-type-conversions.md - name: Boxing and Unboxing href: programming-guide/types/boxing-and-unboxing.md - name: "How to convert a byte array to an int" href: programming-guide/types/how-to-convert-a-byte-array-to-an-int.md - name: "How to convert a string to a number" href: programming-guide/types/how-to-convert-a-string-to-a-number.md - name: "How to convert between hexadecimal strings and numeric types" href: programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types.md - name: Classes, Structs, and Records items: - name: Polymorphism items: - name: Versioning with the Override and New Keywords href: programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md - name: Knowing When to Use Override and New Keywords href: programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md - name: "How to override the ToString method" href: programming-guide/classes-and-structs/how-to-override-the-tostring-method.md - name: Members items: - name: Members overview href: programming-guide/classes-and-structs/members.md - name: Abstract and Sealed Classes and Class Members href: programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md - name: Static Classes and Static Class Members href: programming-guide/classes-and-structs/static-classes-and-static-class-members.md - name: Access Modifiers href: programming-guide/classes-and-structs/access-modifiers.md - name: Fields href: programming-guide/classes-and-structs/fields.md - name: Constants href: programming-guide/classes-and-structs/constants.md - name: "How to define abstract properties" href: programming-guide/classes-and-structs/how-to-define-abstract-properties.md - name: "How to define constants in C#" href: programming-guide/classes-and-structs/how-to-define-constants.md - name: Properties items: - name: Properties overview href: programming-guide/classes-and-structs/properties.md - name: Using Properties href: programming-guide/classes-and-structs/using-properties.md - name: Interface Properties href: programming-guide/classes-and-structs/interface-properties.md - name: Restricting Accessor Accessibility href: programming-guide/classes-and-structs/restricting-accessor-accessibility.md - name: "How to declare and use read write properties" href: programming-guide/classes-and-structs/how-to-declare-and-use-read-write-properties.md - name: Automatically implemented properties href: programming-guide/classes-and-structs/auto-implemented-properties.md - name: "How to implement a lightweight class with automatically implemented properties" href: programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties.md - name: Methods items: - name: Methods overview href: programming-guide/classes-and-structs/methods.md - name: Local functions href: programming-guide/classes-and-structs/local-functions.md - name: Implicitly Typed Local Variables href: programming-guide/classes-and-structs/implicitly-typed-local-variables.md - name: "How to use implicitly typed local variables and arrays in a query expression" href: programming-guide/classes-and-structs/how-to-use-implicitly-typed-local-variables-and-arrays-in-a-query-expression.md - name: Extension Methods href: programming-guide/classes-and-structs/extension-methods.md - name: "How to implement and call a custom extension method" href: programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md - name: "How to create a new method for an enumeration" href: programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md - name: Named and Optional Arguments href: programming-guide/classes-and-structs/named-and-optional-arguments.md - name: Constructors items: - name: Constructors overview href: programming-guide/classes-and-structs/constructors.md - name: Using constructors href: programming-guide/classes-and-structs/using-constructors.md - name: Instance constructors href: programming-guide/classes-and-structs/instance-constructors.md - name: Private constructors href: programming-guide/classes-and-structs/private-constructors.md - name: Static constructors href: programming-guide/classes-and-structs/static-constructors.md - name: "How to write a copy constructor" href: programming-guide/classes-and-structs/how-to-write-a-copy-constructor.md - name: Finalizers href: programming-guide/classes-and-structs/finalizers.md - name: Object and Collection Initializers href: programming-guide/classes-and-structs/object-and-collection-initializers.md - name: "How to initialize objects by using an object initializer" href: programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer.md - name: "How to initialize a dictionary with a collection initializer" href: programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md - name: Nested Types href: programming-guide/classes-and-structs/nested-types.md - name: Partial Classes and Methods href: programming-guide/classes-and-structs/partial-classes-and-methods.md - name: "How to return subsets of element properties in a query" href: programming-guide/classes-and-structs/how-to-return-subsets-of-element-properties-in-a-query.md - name: Interfaces items: - name: Explicit Interface Implementation href: programming-guide/interfaces/explicit-interface-implementation.md - name: "How to explicitly implement interface members" href: programming-guide/interfaces/how-to-explicitly-implement-interface-members.md - name: "How to explicitly implement members of two interfaces" href: programming-guide/interfaces/how-to-explicitly-implement-members-of-two-interfaces.md - name: Delegates items: - name: Overview displayName: delegates href: programming-guide/delegates/index.md - name: Using Delegates href: programming-guide/delegates/using-delegates.md - name: Delegates with Named vs. Anonymous Methods href: programming-guide/delegates/delegates-with-named-vs-anonymous-methods.md - name: "How to combine delegates (Multicast Delegates) (C# Programming Guide)" href: programming-guide/delegates/how-to-combine-delegates-multicast-delegates.md - name: "How to declare, instantiate, and use a delegate" href: programming-guide/delegates/how-to-declare-instantiate-and-use-a-delegate.md - name: Strings items: - name: Programming with strings href: programming-guide/strings/index.md - name: "How to determine whether a string represents a numeric value" href: programming-guide/strings/how-to-determine-whether-a-string-represents-a-numeric-value.md - name: Indexers items: - name: Overview displayName: indexers href: programming-guide/indexers/index.md - name: Using Indexers href: programming-guide/indexers/using-indexers.md - name: Indexers in Interfaces href: programming-guide/indexers/indexers-in-interfaces.md - name: Comparison Between Properties and Indexers href: programming-guide/indexers/comparison-between-properties-and-indexers.md - name: Events items: - name: Overview displayName: events href: programming-guide/events/index.md - name: "How to subscribe to and unsubscribe from events" href: programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events.md - name: "How to raise base class events in derived classes" href: programming-guide/events/how-to-raise-base-class-events-in-derived-classes.md - name: "How to implement interface events" href: programming-guide/events/how-to-implement-interface-events.md - name: "How to implement custom event accessors" href: programming-guide/events/how-to-implement-custom-event-accessors.md - name: Generics items: - name: Generic Type Parameters href: programming-guide/generics/generic-type-parameters.md - name: Constraints on Type Parameters href: programming-guide/generics/constraints-on-type-parameters.md - name: Generic Classes href: programming-guide/generics/generic-classes.md - name: Generic Interfaces href: programming-guide/generics/generic-interfaces.md - name: Generic Methods href: programming-guide/generics/generic-methods.md - name: Generics and Arrays href: programming-guide/generics/generics-and-arrays.md - name: Generic Delegates href: programming-guide/generics/generic-delegates.md - name: Differences Between C++ Templates and C# Generics href: programming-guide/generics/differences-between-cpp-templates-and-csharp-generics.md - name: Generics in the Run Time href: programming-guide/generics/generics-in-the-run-time.md - name: Other C# documentation items: - name: C# language reference href: ./language-reference/index.yml - name: C# specification href: ./specification/index.yml