Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 37 additions & 2 deletions .openpublishing.redirection.json
Original file line number Diff line number Diff line change
Expand Up @@ -2980,7 +2980,27 @@
},
{
"source_path": "docs/csharp/tutorials/default-interface-members-versions.md",
"redirect_url": "/dotnet/csharp/tutorials/default-interface-methods-versions"
"redirect_url": "/dotnet/csharp/whats-new/tutorials/default-interface-methods-versions"
},
{
"source_path": "docs/csharp/tutorials/generate-consume-asynchronous-stream.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/generate-consume-asynchronous-stream"
},
{
"source_path": "docs/csharp/tutorials/mixins-with-default-interface-methods.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/mixins-with-default-interface-methods"
},
{
"source_path": "docs/csharp/tutorials/nullable-reference-types.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/nullable-reference-types"
},
{
"source_path": "docs/csharp/tutorials/ranges-indexes.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/ranges-indexes"
},
{
"source_path": "docs/csharp/tutorials/upgrade-to-nullable-references.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/upgrade-to-nullable-references"
},
{
"source_path": "docs/csharp/tutorials/exploration/csharp-6.yml",
Expand All @@ -2990,6 +3010,18 @@
"source_path": "docs/csharp/tutorials/exploration/csharp-7.yml",
"redirect_url": "/dotnet/csharp/whats-new/csharp-7"
},
{
"source_path": "docs/csharp/tutorials/exploration/patterns-objects.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/patterns-objects"
},
{
"source_path": "docs/csharp/tutorials/exploration/records.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/records"
},
{
"source_path": "docs/csharp/tutorials/exploration/top-level-statements.md",
"redirect_url": "/dotnet/csharp/whats-new/tutorials/top-level-statements"
},
{
"source_path": "docs/csharp/tutorials/intro-to-csharp/index.md",
"redirect_url": "/dotnet/csharp/tour-of-csharp/tutorials/"
Expand Down Expand Up @@ -3026,7 +3058,10 @@
"source_path": "docs/csharp/tutorials/intro-to-csharp/arrays-and-collections.md",
"redirect_url": "/dotnet/csharp/tour-of-csharp/tutorials/arrays-and-collections"
},

{
"source_path": "docs/csharp/tutorials/index.md",
"redirect_url": "/dotnet/csharp/tutorials/intro-to-csharp/introduction-to-classes"
},
{
"source_path": "docs/csharp/tutorials/intro-to-csharp/interpolated-strings-local.md",
"redirect_url": "/dotnet/csharp/tutorials/exploration/interpolated-strings-local"
Expand Down
8 changes: 4 additions & 4 deletions docs/core/whats-new/dotnet-core-3-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ C# 8.0 is also part of this release, which includes the [nullable reference type

Tutorials related to C# 8.0 language features:

- [Tutorial: Express your design intent more clearly with nullable and non-nullable reference types](../../csharp/tutorials/nullable-reference-types.md)
- [Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0](../../csharp/tutorials/generate-consume-asynchronous-stream.md)
- [Tutorial: Express your design intent more clearly with nullable and non-nullable reference types](../../csharp/whats-new/tutorials/nullable-reference-types.md)
- [Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0](../../csharp/whats-new/tutorials/generate-consume-asynchronous-stream.md)
- [Tutorial: Use pattern matching to build type-driven and data-driven algorithms](../../csharp/tutorials/pattern-matching.md)

Language enhancements were added to support the following API features detailed below:
Expand Down Expand Up @@ -450,7 +450,7 @@ There's also the <xref:System.Range?displayProperty=nameWithType> type, which co
var slice = a[i1..i2]; // { 3, 4, 5 }
```

For more information, see the [ranges and indices tutorial](../../csharp/tutorials/ranges-indexes.md).
For more information, see the [ranges and indices tutorial](../../csharp/whats-new/tutorials/ranges-indexes.md).

### Async streams

Expand All @@ -470,7 +470,7 @@ async IAsyncEnumerable<int> GetBigResultsAsync()

In addition to being able to `await foreach`, you can also create async iterators, for example, an iterator that returns an `IAsyncEnumerable/IAsyncEnumerator` that you can both `await` and `yield` in. For objects that need to be disposed, you can use `IAsyncDisposable`, which various BCL types implement, such as `Stream` and `Timer`.

For more information, see the [async streams tutorial](../../csharp/tutorials/generate-consume-asynchronous-stream.md).
For more information, see the [async streams tutorial](../../csharp/whats-new/tutorials/generate-consume-asynchronous-stream.md).

### IEEE Floating-point

Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/operators/await.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ For more information, see the [Await expressions](~/_csharplang/spec/expressions
- [Asynchronous programming](../../async.md)
- [Async in depth](../../../standard/async-in-depth.md)
- [Walkthrough: accessing the Web by using async and await](../../programming-guide/concepts/async/index.md)
- [Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0](../../tutorials/generate-consume-asynchronous-stream.md)
- [Tutorial: Generate and consume async streams using C# 8.0 and .NET Core 3.0](../../whats-new/tutorials/generate-consume-asynchronous-stream.md)
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ Available in C# 8.0 and later, the `^` operator indicates the element position f

As the preceding example shows, expression `^e` is of the <xref:System.Index?displayProperty=nameWithType> type. In expression `^e`, the result of `e` must be implicitly convertible to `int`.

You can also use the `^` operator with the [range operator](#range-operator-) to create a range of indices. For more information, see [Indices and ranges](../../tutorials/ranges-indexes.md).
You can also use the `^` operator with the [range operator](#range-operator-) to create a range of indices. For more information, see [Indices and ranges](../../whats-new/tutorials/ranges-indexes.md).

## Range operator ..

Expand All @@ -194,7 +194,7 @@ You can omit any of the operands of the `..` operator to obtain an open-ended ra

[!code-csharp[ranges with omitted operands](snippets/shared/MemberAccessOperators.cs#RangesOptional)]

For more information, see [Indices and ranges](../../tutorials/ranges-indexes.md).
For more information, see [Indices and ranges](../../whats-new/tutorials/ranges-indexes.md).

## Operator overloadability

Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/nullable-references.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,6 @@ In the preceding example, the declaration of the array shows it holds non-nullab
## See also

- [Draft nullable reference types specification](~/_csharplang/proposals/csharp-9.0/nullable-reference-types-specification.md)
- [Intro to nullable references tutorial](tutorials/nullable-reference-types.md)
- [Intro to nullable references tutorial](whats-new/tutorials/nullable-reference-types.md)
- [Migrate an existing codebase to nullable references](tutorials/upgrade-to-nullable-references.md)
- [**Nullable** (C# Compiler option)](language-reference/compiler-options/language.md#nullable)
2 changes: 1 addition & 1 deletion docs/csharp/programming-guide/interfaces/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ A base class can also implement interface members by using virtual members. In t

An interface has the following properties:

- An interface is typically like an abstract base class with only abstract members. Any class or struct that implements the interface must implement all its members. Optionally, an interface may define default implementations for some or all of its members. For more information, see [default interface methods](../../tutorials/default-interface-methods-versions.md).
- An interface is typically like an abstract base class with only abstract members. Any class or struct that implements the interface must implement all its members. Optionally, an interface may define default implementations for some or all of its members. For more information, see [default interface methods](../../whats-new/tutorials/default-interface-methods-versions.md).
- An interface can't be instantiated directly. Its members are implemented by any class or struct that implements the interface.
- A class or struct can implement multiple interfaces. A class can inherit a base class and also implement one or more interfaces.

Expand Down
79 changes: 39 additions & 40 deletions docs/csharp/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,41 +35,55 @@ items:
href: tour-of-csharp/tutorials/branches-and-loops-local.md
- name: List collections
href: tour-of-csharp/tutorials/arrays-and-collections.md
- name: What's new in C#
items:
- name: C# 9.0
displayName: what's new
href: whats-new/csharp-9.md
- name: C# 8.0
href: whats-new/csharp-8.md
- name: C# 7.0-7.3
href: whats-new/csharp-7.md
- name: Compiler breaking changes
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 record types
href: whats-new/tutorials/records.md
- name: Explore top level statements
href: whats-new/tutorials/top-level-statements.md
- name: Explore patterns in objects
href: whats-new/tutorials/patterns-objects.md
- name: Safely update interfaces with default interface methods
href: whats-new/tutorials/default-interface-methods-versions.md
- name: Create mixin functionality with default interface methods
href: whats-new/tutorials/mixins-with-default-interface-methods.md
- name: Explore indexes and ranges
href: whats-new/tutorials/ranges-indexes.md
- name: Work with nullable reference types
href: whats-new/tutorials/nullable-reference-types.md
- name: Upgrade an app to nullable reference types
href: whats-new/tutorials/upgrade-to-nullable-references.md
- name: Generate and consume asynchronous streams
href: whats-new/tutorials/generate-consume-asynchronous-stream.md
- name: Tutorials
items:
- name: Overview
displayName: tutorials
href: tutorials/index.md
- name: Introduction to classes
href: tutorials/intro-to-csharp/introduction-to-classes.md
- name: Object-Oriented programming
href: tutorials/intro-to-csharp/object-oriented-programming.md
- name: Explore record types
href: tutorials/exploration/records.md
- name: Explore top level statements
href: tutorials/exploration/top-level-statements.md
- name: Explore patterns in objects
href: tutorials/exploration/patterns-objects.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: Safely update interfaces with default interface methods
href: tutorials/default-interface-methods-versions.md
- name: Create mixin functionality with default interface methods
href: tutorials/mixins-with-default-interface-methods.md
- name: Explore indexes and ranges
href: tutorials/ranges-indexes.md
- name: Work with nullable reference types
href: tutorials/nullable-reference-types.md
- name: Upgrade an app to nullable reference types
href: tutorials/upgrade-to-nullable-references.md
- name: Generate and consume asynchronous streams
href: tutorials/generate-consume-asynchronous-stream.md
- name: Build data-driven algorithms with pattern matching
href: tutorials/pattern-matching.md
- name: Console Application
href: tutorials/console-teleprompter.md
- name: REST Client
Expand All @@ -80,23 +94,8 @@ items:
href: tutorials/working-with-linq.md
- name: Use Attributes
href: tutorials/attributes.md
- name: What's new in C#
items:
- name: C# 9.0
displayName: what's new
href: whats-new/csharp-9.md
- name: C# 8.0
href: whats-new/csharp-8.md
- name: C# 7.0-7.3
href: whats-new/csharp-7.md
- name: Breaking changes in the compiler
href: whats-new/breaking-changes.md
- name: C# Version History
href: whats-new/csharp-version-history.md
- name: Relationships between language and framework
href: whats-new/relationships-between-language-and-library.md
- name: Version and update considerations
href: whats-new/version-update-considerations.md
- name: Build data-driven algorithms with pattern matching
href: tutorials/pattern-matching.md
- name: C# concepts
items:
- name: C# type system
Expand Down
27 changes: 0 additions & 27 deletions docs/csharp/tutorials/index.md

This file was deleted.

Loading