From 8ea9eaf0f64d8a09244c320b55f702185cd67cdd Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 23 Dec 2025 10:00:56 -0800 Subject: [PATCH 1/3] more try.net cleanup --- docs/core/extensions/logging-providers.md | 2 +- .../language-reference/attributes/general.md | 2 +- .../builtin-types/default-values.md | 26 +++++++++---------- .../floating-point-numeric-types.md | 8 +++--- .../builtin-types/reference-types.md | 8 +++--- .../language-reference/operators/index.md | 22 ++++++++-------- .../language-reference/tokens/interpolated.md | 2 +- .../how-to-write-csharp-analyzer-code-fix.md | 2 +- docs/csharp/tour-of-csharp/overview.md | 4 +-- docs/csharp/tour-of-csharp/tutorials/index.md | 4 +-- .../tutorials/numbers-in-csharp.md | 6 ++--- .../csharp-interactive-with-utc-note.md | 5 ---- docs/samples-and-tutorials/index.md | 2 +- .../choosing-between-anonymous-and-tuple.md | 14 +++++----- docs/standard/base-types/parsing-datetime.md | 3 --- 15 files changed, 50 insertions(+), 60 deletions(-) delete mode 100644 docs/fundamentals/runtime-libraries/includes/csharp-interactive-with-utc-note.md diff --git a/docs/core/extensions/logging-providers.md b/docs/core/extensions/logging-providers.md index c82d6bdb1a138..1cad48ab08fd1 100644 --- a/docs/core/extensions/logging-providers.md +++ b/docs/core/extensions/logging-providers.md @@ -188,7 +188,7 @@ For more information, see the following resources: - [Application Insights overview](/azure/application-insights/app-insights-overview) - [ApplicationInsightsLoggerProvider for .NET Core ILogger logs](/azure/azure-monitor/app/ilogger) - Start here if you want to implement the logging provider without the rest of Application Insights telemetry. - [Application Insights logging adapters](/azure/azure-monitor/app/asp-net-trace-logs). -- [Install, configure, and initialize the Application Insights SDK](/training/modules/instrument-web-app-code-with-application-insights) - Interactive tutorial on the Microsoft Learn site. +- [Learn how to use the tools offered in Application Insights to enhance the performance and stability of your applications](/training/modules/monitor-app-performance/). ## Logging provider design considerations diff --git a/docs/csharp/language-reference/attributes/general.md b/docs/csharp/language-reference/attributes/general.md index e4c3f49a3eb64..3c24b5edba55d 100644 --- a/docs/csharp/language-reference/attributes/general.md +++ b/docs/csharp/language-reference/attributes/general.md @@ -35,7 +35,7 @@ In the following example, `Conditional` is applied to a method to enable or disa :::code language="csharp" source="snippets/trace.cs" ::: -If the `TRACE_ON` identifier isn't defined, the trace output isn't displayed. Explore for yourself in the interactive window. +If the `TRACE_ON` identifier isn't defined, the trace output isn't displayed. The `Conditional` attribute is often used with the `DEBUG` identifier to enable trace and logging features for debug builds but not in release builds, as shown in the following example: diff --git a/docs/csharp/language-reference/builtin-types/default-values.md b/docs/csharp/language-reference/builtin-types/default-values.md index f0f64b5c95cd3..05be1aaee11ff 100644 --- a/docs/csharp/language-reference/builtin-types/default-values.md +++ b/docs/csharp/language-reference/builtin-types/default-values.md @@ -2,7 +2,7 @@ title: "Default values of built-in types" description: "Learn the default values of C# types such as bool, char, int, float, double, and more." ms.date: 11/18/2025 -helpviewer_keywords: +helpviewer_keywords: - "default [C#]" - "parameterless constructor [C#]" --- @@ -10,16 +10,16 @@ helpviewer_keywords: The following table shows the default values of C# types: -|Type|Default value| -|---------|------------------| -|Any [reference type](../keywords/reference-types.md)|`null`| -|Any [built-in integral numeric type](integral-numeric-types.md)|0 (zero)| -|Any [built-in floating-point numeric type](floating-point-numeric-types.md)|0 (zero)| -|[bool](bool.md)|`false`| -|[char](char.md)|`'\0'` (U+0000)| -|[enum](enum.md)|The value produced by the expression `(E)0`, where `E` is the enum identifier.| -|[struct](struct.md)|The value produced by setting all value-type fields to their default values and all reference-type fields to `null`.| -|Any [nullable value type](nullable-value-types.md)|An instance for which the property is `false` and the property is undefined. That default value is also known as the *null* value of a nullable value type.| +| Type | Default value | +|-----------------------------------------------------------------------------|-----------------| +| Any [reference type](../keywords/reference-types.md) | `null` | +| Any [built-in integral numeric type](integral-numeric-types.md) | 0 (zero) | +| Any [built-in floating-point numeric type](floating-point-numeric-types.md) | 0 (zero) | +| [bool](bool.md) | `false` | +| [char](char.md) | `'\0'` (U+0000) | +| [enum](enum.md) | The value produced by the expression `(E)0`, where `E` is the enum identifier. | +| [struct](struct.md) | The value produced by setting all value-type fields to their default values and all reference-type fields to `null`. | +| Any [nullable value type](nullable-value-types.md) | An instance for which the property is `false` and the property is undefined. That default value is also known as the *null* value of a nullable value type. | ## Default value expressions @@ -39,12 +39,12 @@ int a = default; For a value type, the *implicit* parameterless constructor also produces the default value of the type, as the following example shows: -```csharp-interactive +```csharp var n = new System.Numerics.Complex(); Console.WriteLine(n); // output: (0, 0) ``` -At run time, if the instance represents a value type, you can use the method to invoke the parameterless constructor to obtain the default value of the type. +At runtime, if the instance represents a value type, you can use the method to invoke the parameterless constructor to obtain the default value of the type. > [!NOTE] > A [structure type](struct.md) (which is a value type) can have an [explicit parameterless constructor](struct.md#struct-initialization-and-default-values) that might produce a non-default value of the type. Thus, we recommend using the `default` operator or the `default` literal to produce the default value of a type. diff --git a/docs/csharp/language-reference/builtin-types/floating-point-numeric-types.md b/docs/csharp/language-reference/builtin-types/floating-point-numeric-types.md index e263a578edfc4..de855a991bf1d 100644 --- a/docs/csharp/language-reference/builtin-types/floating-point-numeric-types.md +++ b/docs/csharp/language-reference/builtin-types/floating-point-numeric-types.md @@ -27,8 +27,8 @@ The *floating-point numeric types* represent real numbers. All floating-point nu C# supports the following predefined floating-point types: -|C# type/keyword|Approximate range|Precision|Size|.NET type| -|----------|-----------------------|---------------|--------------|--------------| +| C# type/keyword | Approximate range | Precision | Size | .NET type | +|-----------------|-------------------|-----------|------|-----------| |`float`|±1.5 x 10−45 to ±3.4 x 1038|~6-9 digits|4 bytes|| |`double`|±5.0 × 10−324 to ±1.7 × 10308|~15-17 digits|8 bytes|| |`decimal`|±1.0 x 10-28 to ±7.9228 x 1028|28-29 digits|16 bytes|| @@ -53,7 +53,7 @@ You can also mix integral types and the `decimal` type in an expression. In this You cannot mix the `decimal` type with the `float` and `double` types in an expression. In this case, if you want to perform arithmetic, comparison, or equality operations, you must explicitly convert the operands either from or to the `decimal` type, as the following example shows: -```csharp-interactive +```csharp double a = 1.0; decimal b = 2.1m; Console.WriteLine(a + (double)b); @@ -88,7 +88,7 @@ The preceding example also shows the use of `_` as a *digit separator*. You can You can also use scientific notation, that is, specify an exponent part of a real literal, as the following example shows: -```csharp-interactive +```csharp double d = 0.42e2; Console.WriteLine(d); // output 42 diff --git a/docs/csharp/language-reference/builtin-types/reference-types.md b/docs/csharp/language-reference/builtin-types/reference-types.md index 3f2dd12793eb0..27457e22ad3cb 100644 --- a/docs/csharp/language-reference/builtin-types/reference-types.md +++ b/docs/csharp/language-reference/builtin-types/reference-types.md @@ -36,10 +36,10 @@ The `string` type represents a sequence of zero or more Unicode characters. `str Although `string` is a reference type, the [equality operators `==` and `!=`](../operators/equality-operators.md#string-equality) are defined to compare the values of `string` objects, not references. Value based equality makes testing for string equality more intuitive. For example: -```csharp-interactive +```csharp string a = "hello"; string b = "h"; -// Append to contents of 'b' +// Append to contents of 'b'. b += "ello"; Console.WriteLine(a == b); Console.WriteLine(object.ReferenceEquals(a, b)); @@ -71,7 +71,7 @@ char x = str[2]; // x = 's'; In similar fashion, the `[]` operator can also be used for iterating over each character in a string: -```csharp-interactive +```csharp string str = "test"; for (int i = 0; i < str.Length; i++) @@ -155,7 +155,7 @@ Quoted string literals are enclosed in double quotation marks ("): String literals can contain any character literal. Escape sequences are included. The following example uses escape sequence `\\` for backslash, `\u0066` for the letter f, and `\n` for newline. -```csharp-interactive +```csharp string a = "\\\u0066\n F"; Console.WriteLine(a); // Output: diff --git a/docs/csharp/language-reference/operators/index.md b/docs/csharp/language-reference/operators/index.md index 4c6be6c6d89e9..a69fb1b34c688 100644 --- a/docs/csharp/language-reference/operators/index.md +++ b/docs/csharp/language-reference/operators/index.md @@ -2,9 +2,9 @@ title: "Operators and expressions - List all operators and expression" description: "Learn the C# operators and expressions, operator precedence, and operator associativity." ms.date: 11/28/2022 -f1_keywords: +f1_keywords: - "cs.operators" -helpviewer_keywords: +helpviewer_keywords: - "operators [C#]" - "operator precedence [C#]" - "operator associativity [C#]" @@ -54,14 +54,14 @@ You can use an [expression body definition](../../programming-guide/statements-e In an expression with multiple operators, the operators with higher precedence are evaluated before the operators with lower precedence. In the following example, the multiplication is performed first because it has higher precedence than addition: -```csharp-interactive +```csharp var a = 2 + 2 * 2; Console.WriteLine(a); // output: 6 ``` Use parentheses to change the order of evaluation imposed by operator precedence: -```csharp-interactive +```csharp var a = (2 + 2) * 2; Console.WriteLine(a); // output: 8 ``` @@ -102,7 +102,7 @@ When operators have the same precedence, associativity of the operators determin Use parentheses to change the order of evaluation imposed by operator associativity: -```csharp-interactive +```csharp int a = 13 / 5 / 2; int b = 13 / (5 / 2); Console.WriteLine($"a = {a}, b = {b}"); // output: a = 1, b = 6 @@ -112,12 +112,12 @@ Console.WriteLine($"a = {a}, b = {b}"); // output: a = 1, b = 6 Unrelated to operator precedence and associativity, operands in an expression are evaluated from left to right. The following examples demonstrate the order in which operators and operands are evaluated: -| Expression | Order of evaluation | -| ---------- | ------------------- | -|`a + b`|a, b, +| -|`a + b * c`|a, b, c, *, +| -|`a / b + c * d`|a, b, /, c, d, *, +| -|`a / (b + c) * d`|a, b, c, +, /, d, *| +| Expression | Order of evaluation | +|-------------------|---------------------| +| `a + b` | a, b, + | +| `a + b * c` | a, b, c, *, + | +| `a / b + c * d` | a, b, /, c, d, *, + | +| `a / (b + c) * d` | a, b, c, +, /, d, * | Typically, all operator operands are evaluated. However, some operators evaluate operands conditionally. That is, the value of the leftmost operand of such an operator defines if (or which) other operands should be evaluated. These operators are the conditional logical [AND (`&&`)](boolean-logical-operators.md#conditional-logical-and-operator-) and [OR (`||`)](boolean-logical-operators.md#conditional-logical-or-operator-) operators, the [null-coalescing operators `??` and `??=`](null-coalescing-operator.md), the [null-conditional operators `?.` and `?[]`](member-access-operators.md#null-conditional-operators--and-), and the [conditional operator `?:`](conditional-operator.md). For more information, see the description of each operator. diff --git a/docs/csharp/language-reference/tokens/interpolated.md b/docs/csharp/language-reference/tokens/interpolated.md index 949318618c724..5472f8d2c9722 100644 --- a/docs/csharp/language-reference/tokens/interpolated.md +++ b/docs/csharp/language-reference/tokens/interpolated.md @@ -90,7 +90,7 @@ For more information about custom formatting, see the [Custom formatting with IC ## Other resources -If you're new to string interpolation, see the [String interpolation in C#](../../tutorials/string-interpolation.md) interactive tutorial. That tutorial demonstrates how to use interpolated strings to produce formatted strings. +If you're new to string interpolation, see the [String interpolation in C#](../../tutorials/string-interpolation.md) tutorial. That tutorial demonstrates how to use interpolated strings to produce formatted strings. ## Compilation of interpolated strings diff --git a/docs/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix.md b/docs/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix.md index f273ff10e457b..71b3c8d64b028 100644 --- a/docs/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix.md +++ b/docs/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix.md @@ -29,7 +29,7 @@ There are several steps to creating and validating your analyzer: ## Create the solution -- In Visual Studio, choose **File > New > Project...** to display the New Project dialog. +- In Visual Studio, choose **File > New > Project** to display the New Project dialog. - Under **Visual C# > Extensibility**, choose **Analyzer with code fix (.NET Standard)**. - Name your project "**MakeConst**" and click OK. diff --git a/docs/csharp/tour-of-csharp/overview.md b/docs/csharp/tour-of-csharp/overview.md index 81842808187f8..8f386f0d28cf2 100644 --- a/docs/csharp/tour-of-csharp/overview.md +++ b/docs/csharp/tour-of-csharp/overview.md @@ -17,7 +17,7 @@ C# is in the C family of languages. [C# syntax](../language-reference/keywords/i The "Hello, World" program is traditionally used to introduce a programming language. Here it is in C#: ```csharp -// This line prints "Hello, World" +// This line prints "Hello, World" Console.WriteLine("Hello, World"); ``` @@ -25,7 +25,7 @@ The line starting with `//` is a *single line comment*. C# single line comments This alternative format is still valid and contains many of the basic concepts in all C# programs. Many existing C# samples use the following equivalent format: -:::code language="csharp" interactive="try-dotnet" source="./snippets/shared/HelloWorld.cs"::: +:::code language="csharp" source="./snippets/shared/HelloWorld.cs"::: The preceding "Hello, World" program starts with a `using` directive that references the `System` namespace. Namespaces provide a hierarchical means of organizing C# programs and libraries. Namespaces contain types and other namespaces—for example, the `System` namespace contains many types, such as the `Console` class referenced in the program, and many other namespaces, such as `IO` and `Collections`. A `using` directive that references a given namespace enables unqualified use of the types that are members of that namespace. Because of the `using` directive, the program can use `Console.WriteLine` as shorthand for `System.Console.WriteLine`. In the earlier example, that namespace was [implicitly](../language-reference/keywords/using-directive.md#the-global-modifier) included. diff --git a/docs/csharp/tour-of-csharp/tutorials/index.md b/docs/csharp/tour-of-csharp/tutorials/index.md index 267209cd057ce..d5ff2e5e17d22 100644 --- a/docs/csharp/tour-of-csharp/tutorials/index.md +++ b/docs/csharp/tour-of-csharp/tutorials/index.md @@ -1,6 +1,6 @@ --- title: Interactive tutorials -description: Learn C# in your browser, and get started with your own development environment +description: Learn C# using GitHub codespaces, and get started with your own development environment. ms.date: 12/10/2025 --- # Introduction to C\# @@ -10,7 +10,7 @@ Welcome to the introduction to C# tutorials. These lessons start with interactiv > [!VIDEO https://www.youtube.com/embed/9THmGiSPjBQ?si=3kUKFtOMLpEzeq7J] -The first lessons explain C# concepts by using small snippets of code. You learn the basics of C# syntax and how to work with data types like strings, numbers, and booleans. It's all interactive, and you'll be writing and running code within minutes. These first lessons assume no prior knowledge of programming or the C# language. Each lesson builds on the prior lessons. You should do them in order. However, if you have some programming experience, you can skip or skim the first lessons and start with any new concepts. +The first lessons explain C# concepts by using small snippets of code. You learn the basics of C# syntax and how to work with data types like strings, numbers, and Booleans. It's all interactive, and you'll be writing and running code within minutes. These first lessons assume no prior knowledge of programming or the C# language. Each lesson builds on the prior lessons. You should do them in order. However, if you have some programming experience, you can skip or skim the first lessons and start with any new concepts. To use GitHub codespaces, you need to create a free [GitHub](https://github.com) account. diff --git a/docs/csharp/tour-of-csharp/tutorials/numbers-in-csharp.md b/docs/csharp/tour-of-csharp/tutorials/numbers-in-csharp.md index 0780a26808b9a..3bd7e5db99a67 100644 --- a/docs/csharp/tour-of-csharp/tutorials/numbers-in-csharp.md +++ b/docs/csharp/tour-of-csharp/tutorials/numbers-in-csharp.md @@ -1,6 +1,6 @@ --- title: Work with Numbers - Introductory tutorial -description: This tutorial teaches you about the numeric types in C#. The tutorial contains a series of lessons that explore numbers and math operations in C#. +description: This tutorial teaches you about the numeric types in C#. The tutorial contains a series of lessons that explore numbers and math operations in C#. ms.date: 12/10/2025 --- # Tutorial: How to use integer and floating point numbers in C\# @@ -247,12 +247,10 @@ Now that you know the different numeric types, write code that calculates the ar You should get an answer between 19 and 20. -When you try it, open the details pane to see how you did: -
-:::code language="csharp" interactive="try-dotnet-method" source="./snippets/NumbersInCsharp/numbers.cs" id="Challenge"::: +:::code language="csharp" source="./snippets/NumbersInCsharp/numbers.cs" id="Challenge":::
diff --git a/docs/fundamentals/runtime-libraries/includes/csharp-interactive-with-utc-note.md b/docs/fundamentals/runtime-libraries/includes/csharp-interactive-with-utc-note.md deleted file mode 100644 index f11659f31533b..0000000000000 --- a/docs/fundamentals/runtime-libraries/includes/csharp-interactive-with-utc-note.md +++ /dev/null @@ -1,5 +0,0 @@ - -> [!NOTE] -> Some C# examples in this article run in the [Try.NET](https://try.dot.net) inline code runner and playground. Select the **Run** button to run an example in an interactive window. Once you execute the code, you can modify it and run the modified code by selecting **Run** again. The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages. -> -> The [local time zone](xref:System.TimeZoneInfo.Local) of the [Try.NET](https://try.dot.net) inline code runner and playground is Coordinated Universal Time, or UTC. This may affect the behavior and the output of examples that illustrate the , , and types and their members. diff --git a/docs/samples-and-tutorials/index.md b/docs/samples-and-tutorials/index.md index ba744f21116b9..c19e38e29a57d 100644 --- a/docs/samples-and-tutorials/index.md +++ b/docs/samples-and-tutorials/index.md @@ -8,7 +8,7 @@ ms.date: 02/01/2021 # .NET samples and tutorials -The .NET documentation contains a set of samples and tutorials that teach you about .NET. This article describes how to find, view, and download .NET, ASP.NET Core, and C# samples and tutorials. Find resources to learn the F# programming language on the [F# Foundation's site](https://fsharp.org/learn/). If you're interested in exploring C# using an online code editor, start with [this interactive tutorial](https://dotnet.microsoft.com/learn/dotnet/in-browser-tutorial/1) and continue with [C# interactive tutorial](../csharp/tour-of-csharp/tutorials/index.md). For instructions on how to view and download sample code, see the [Viewing and downloading samples](#view-and-download-samples) section. +The .NET documentation contains a set of samples and tutorials that teach you about .NET. This article describes how to find, view, and download .NET, ASP.NET Core, and C# samples and tutorials. Find resources to learn the F# programming language on the [F# Foundation's site](https://fsharp.org/learn/). If you're interested in exploring C#, start with [Hello World in 5 minutes](https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro) and continue with [Introduction to C# tutorial](../csharp/tour-of-csharp/tutorials/index.md). For instructions on how to view and download sample code, see the [Viewing and downloading samples](#view-and-download-samples) section. ## .NET diff --git a/docs/standard/base-types/choosing-between-anonymous-and-tuple.md b/docs/standard/base-types/choosing-between-anonymous-and-tuple.md index 7ed3f0b9254b9..596c372e6baa9 100644 --- a/docs/standard/base-types/choosing-between-anonymous-and-tuple.md +++ b/docs/standard/base-types/choosing-between-anonymous-and-tuple.md @@ -12,7 +12,7 @@ Choosing the appropriate type involves considering its usability, performance, a Anonymous types were introduced in C# 3.0 with Language-Integrated Query (LINQ) expressions. With LINQ, developers often project results from queries into anonymous types that hold a few select properties from the objects they're working with. Consider the following example, that instantiates an array of objects, and iterates through them projecting into an anonymous type with two properties. -```csharp-interactive +```csharp var dates = new[] { DateTime.UtcNow.AddHours(-1), @@ -48,7 +48,7 @@ internal sealed class f__AnonymousType0 For more information, see [anonymous types](../../csharp/fundamentals/types/anonymous-types.md). The same functionality exists with tuples when projecting into LINQ queries, you can select properties into tuples. These tuples flow through the query, just as anonymous types would. Now consider the following example using the `System.Tuple`. -```csharp-interactive +```csharp var dates = new[] { DateTime.UtcNow.AddHours(-1), @@ -66,7 +66,7 @@ foreach (var tuple in With the , the instance exposes numbered item properties, such as `Item1`, and `Item2`. These property names can make it more difficult to understand the intent of the property values, as the property name only provides the ordinal. Furthermore, the `System.Tuple` types are reference `class` types. The however, is a value `struct` type. The following C# snippet, uses `ValueTuple` to project into. In doing so, it assigns using a literal syntax. -```csharp-interactive +```csharp var dates = new[] { DateTime.UtcNow.AddHours(-1), @@ -93,10 +93,10 @@ You might want to always use over , ### Key differences | Name | Access modifier | Type | Custom member name | Deconstruction support | Expression tree support | -|--------------------------|-----------------|----------|----------------------|------------------------|-------------------------| -| Anonymous types | `internal` | `class` | ✔️ | ❌ | ✔️ | -| | `public` | `class` | ❌ | ❌ | ✔️ | -| | `public` | `struct` | ✔️ | ✔️ | ❌ | +|--------------------------|-----------------|----------|--------------------|------------------------|-------------------------| +| Anonymous types | `internal` | `class` | ✔️ | ❌ | ✔️ | +| | `public` | `class` | ❌ | ❌ | ✔️ | +| | `public` | `struct` | ✔️ | ✔️ | ❌ | ### Serialization diff --git a/docs/standard/base-types/parsing-datetime.md b/docs/standard/base-types/parsing-datetime.md index e067d30f02860..f952034fc02a9 100644 --- a/docs/standard/base-types/parsing-datetime.md +++ b/docs/standard/base-types/parsing-datetime.md @@ -46,9 +46,6 @@ The format provider is also used to interpret an ambiguous numeric date. It's un The following example illustrates the use of the method to convert a `string` into a . This example uses the culture associated with the current thread. If the associated with the current culture can't parse the input string, a is thrown. -> [!TIP] -> All the C# samples in this article run in your browser. Press the **Run** button to see the output. You can also edit them to experiment yourself. - > [!NOTE] > These examples are available in the GitHub docs repo for both [C#](https://github.com/dotnet/docs/tree/main/samples/snippets/csharp/how-to/conversions) and [Visual Basic](https://github.com/dotnet/docs/tree/main/samples/snippets/visualbasic/how-to/conversions). From ef9a91e8cd9ecb16da660156ffe5757b8cdeae9b Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 23 Dec 2025 10:08:27 -0800 Subject: [PATCH 2/3] one more --- docs/core/introduction.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/core/introduction.md b/docs/core/introduction.md index 0cf32601d7fcd..eae1e2a028f8f 100644 --- a/docs/core/introduction.md +++ b/docs/core/introduction.md @@ -83,6 +83,5 @@ There are multiple variants of .NET, each supporting a different type of app. Th ## Next steps * [Choose a .NET tutorial](tutorials/index.md) -* [Try .NET in your browser](../csharp/tour-of-csharp/tutorials/numbers-in-csharp.md) * [Take a tour of C#](../csharp/tour-of-csharp/overview.md) * [Take a tour of F#](../fsharp/tour.md) From 97b9ed4d4f08aa31c0ac990e28d462f3a900471e Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 23 Dec 2025 13:57:03 -0800 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Meaghan Osagie (Lewis) --- docs/csharp/tour-of-csharp/tutorials/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/csharp/tour-of-csharp/tutorials/index.md b/docs/csharp/tour-of-csharp/tutorials/index.md index d5ff2e5e17d22..2027537667400 100644 --- a/docs/csharp/tour-of-csharp/tutorials/index.md +++ b/docs/csharp/tour-of-csharp/tutorials/index.md @@ -1,6 +1,6 @@ --- title: Interactive tutorials -description: Learn C# using GitHub codespaces, and get started with your own development environment. +description: Learn C# using GitHub Codespaces, and get started with your own development environment. ms.date: 12/10/2025 --- # Introduction to C\# @@ -12,7 +12,7 @@ Welcome to the introduction to C# tutorials. These lessons start with interactiv The first lessons explain C# concepts by using small snippets of code. You learn the basics of C# syntax and how to work with data types like strings, numbers, and Booleans. It's all interactive, and you'll be writing and running code within minutes. These first lessons assume no prior knowledge of programming or the C# language. Each lesson builds on the prior lessons. You should do them in order. However, if you have some programming experience, you can skip or skim the first lessons and start with any new concepts. -To use GitHub codespaces, you need to create a free [GitHub](https://github.com) account. +To use GitHub Codespaces, you need to create a free [GitHub](https://github.com) account. ## Hello world