From 5bf92a6e186b6051ca6ecb144b97216b794b3852 Mon Sep 17 00:00:00 2001 From: Caleb Spain Date: Mon, 5 May 2025 09:32:22 -0500 Subject: [PATCH 1/7] Fix grammar in encapsulation sentence ("Member" to "Members") (#46007) --- docs/csharp/fundamentals/object-oriented/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/fundamentals/object-oriented/index.md b/docs/csharp/fundamentals/object-oriented/index.md index 976b99ff5b4de..a4069b1da5a58 100644 --- a/docs/csharp/fundamentals/object-oriented/index.md +++ b/docs/csharp/fundamentals/object-oriented/index.md @@ -18,7 +18,7 @@ In C#, the definition of a type—a class, struct, or record—is like a ## Encapsulation - *Encapsulation* is sometimes referred to as the first pillar or principle of object-oriented programming. A class or struct can specify how accessible each of its members is to code outside of the class or struct. Member not intended for consumers outside of the class or assembly are hidden to limit the potential for coding errors or malicious exploits. For more information, see the [Object-oriented programming](../tutorials/oop.md) tutorial. + *Encapsulation* is sometimes referred to as the first pillar or principle of object-oriented programming. A class or struct can specify how accessible each of its members is to code outside of the class or struct. Members not intended for consumers outside of the class or assembly are hidden to limit the potential for coding errors or malicious exploits. For more information, see the [Object-oriented programming](../tutorials/oop.md) tutorial. ## Members From 5dd1ad89cb9999ec758f1f5ad08bf6f0fec437d6 Mon Sep 17 00:00:00 2001 From: alexwolfmsft <93200798+alexwolfmsft@users.noreply.github.com> Date: Mon, 5 May 2025 11:05:25 -0400 Subject: [PATCH 2/7] Mcp overview and development resources (#45972) New MCP overview doc --------- Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/ai/get-started-mcp.md | 100 ++++++++++++++++++ ...-context-protocol-architecture-diagram.png | Bin 0 -> 248447 bytes docs/ai/toc.yml | 2 + docs/azure/sdk/configure-proxy.md | 2 +- 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 docs/ai/get-started-mcp.md create mode 100644 docs/ai/media/mcp/model-context-protocol-architecture-diagram.png diff --git a/docs/ai/get-started-mcp.md b/docs/ai/get-started-mcp.md new file mode 100644 index 0000000000000..ffc03b0b31a44 --- /dev/null +++ b/docs/ai/get-started-mcp.md @@ -0,0 +1,100 @@ +--- +title: Get started with .NET AI and MCP +description: Learn about .NET AI and MCP key concepts and development resources to get started building MCP clients and servers +ms.date: 04/29/2025 +ms.topic: overview +ms.custom: devx-track-dotnet, devx-track-dotnet-ai +author: alexwolfmsft +ms.author: alexwolf +# CustomerIntent: As a .NET developer new to OpenAI, I want deploy and use sample code to interact to learn from the sample code to summarize text. +--- + +# Get started with .NET AI and the Model Context Protocol + +The Model Context Protocol (MCP) is an open protocol designed to standardize integrations between AI apps and external tools and data sources. By using MCP, developers can enhance the capabilities of AI models, enabling them to produce more accurate, relevant, and context-aware responses. + +For example, using MCP, you can connect your LLM to resources such as: + +- Document databases or storage services. +- Web APIs that expose business data or logic. +- Tools that manage files or performing local tasks on a user's device. + +Many Microsoft products already support MCP, including: + +- [Copilot Studio](https://www.microsoft.com/microsoft-copilot/blog/copilot-studio/introducing-model-context-protocol-mcp-in-copilot-studio-simplified-integration-with-ai-apps-and-agents/) +- [Visual Studio Code GitHub Copilot agent mode](https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode) +- [Semantic Kernel](https://devblogs.microsoft.com/semantic-kernel/integrating-model-context-protocol-tools-with-semantic-kernel-a-step-by-step-guide/). + +You can use the [MCP C# SDK](#develop-with-the-mcp-c-sdk) to quickly create your own MCP integrations and switch between different AI models without significant code changes. + +### MCP client-server architecture + +MCP uses a client-server architecture that enables an AI-powered app (the host) to connect to multiple MCP servers through MCP clients: + +- **MCP Hosts**: AI tools, code editors, or other software that enhance their AI models using contextual resources through MCP. For example, GitHub Copilot in Visual Studio Code can act as an MCP host and use MCP clients and servers to expand its capabilities. +- **MCP Clients**: Clients used by the host application to connect to MCP servers to retrieve contextual data. +- **MCP Servers**: Services that expose capabilities to clients through MCP. For example, an MCP server might provide an abstraction over a REST API or local data source to provide business data to the AI model. + +The following diagram illustrates this architecture: + +:::image type="content" source="media/mcp/model-context-protocol-architecture-diagram.png" alt-text="A diagram showing the architecture pattern of MCP, including hosts, clients, and servers."::: + +MCP client and server can exchange a set of standard messages: + +| Message | Description | +|---------------------|-------------| +| `InitializeRequest` | This request is sent by the client to the server when it first connects, asking it to begin initialization. | +|`ListToolsRequest` | Sent by the client to request a list of tools the server has. | +|`CallToolRequest` | Used by the client to invoke a tool provided by the server. | +|`ListResourcesRequest` | Sent by the client to request a list of available server resources. | +|`ReadResourceRequest` | Sent by the client to the server to read a specific resource URI. | +|`ListPromptsRequest` | Sent by the client to request a list of available prompts and prompt templates from the server. | +|`GetPromptRequest` | Used by the client to get a prompt provided by the server. | +|`PingRequest` | A ping, issued by either the server or the client, to check that the other party is still alive. | +|`CreateMessageRequest` | A request by the server to sample an LLM via the client. The client has full discretion over which model to select. The client should also inform the user before beginning sampling, to allow them to inspect the request (human in the loop) and decide whether to approve it. | +|`SetLevelRequest` | A request by the client to the server, to enable or adjust logging. | + +## Develop with the MCP C# SDK + +As a .NET developer, you can use MCP by creating MCP clients and servers to enhance your apps with custom integrations. MCP reduces the complexity involved in connecting an AI model to various tools, services, and data sources. + +The official [MCP C# SDK](https://github.com/modelcontextprotocol/csharp-sdk) is available through NuGet and enables you to build MCP clients and servers for .NET apps and libraries. The SDK is maintained through collaboration between Microsoft, Anthropic, and the MCP open protocol organization. + +To get started, add the MCP C# SDK to your project: + +```dotnetcli +dotnet add package ModelContextProtocol --prerelease +``` + +Instead of building unique connectors for each integration point, you can often leverage or reference prebuilt integrations from various providers such as GitHub and Docker: + +- [Available MPC clients](https://modelcontextprotocol.io/clients) +- [Available MCP servers](https://modelcontextprotocol.io/examples) + +### Integration with Microsoft.Extensions.AI + +The MCP C# SDK depends on the [Microsoft.Extensions.AI libraries](/dotnet/ai/ai-extensions) to handle various AI interactions and tasks. These extension libraries provides core types and abstractions for working with AI services, so developers can focus on coding against conceptual AI capabilities rather than specific platforms or provider implementations. + +View the MCP C# SDK dependencies on the [NuGet package page](https://www.nuget.org/packages/ModelContextProtocol/0.1.0-preview.11). + +## More .NET MCP development resources + +Various tools, services, and learning resources are available in the .NET and Azure ecosystems to help you build MCP clients and servers or integrate with existing MCP servers. + +Get started with the following development tools: + +- [Semantic Kernel](/semantic-kernel/concepts/plugins/adding-mcp-plugins) allows you to add plugins for MCP servers. Semantic Kernel supports both local MCP servers through standard I/O and remote servers that connect through SSE over HTTPS. +- [Azure Functions remote MCP servers](https://devblogs.microsoft.com/dotnet/build-mcp-remote-servers-with-azure-functions/) combine MCP standards with the flexible architecture of Azure Functions. Visit the [Remote MCP functions sample repository](https://aka.ms/cadotnet/mcp/functions/remote-sample) for code examples. +- [Azure MCP Server](https://github.com/Azure/azure-mcp) implements the MCP specification to seamlessly connect AI agents with key Azure services like Azure Storage, Cosmos DB, and more. + +Learn more about .NET and MCP using these resources: + +- [Microsoft partners with Anthropic to create official C# SDK for Model Context Protocol](https://devblogs.microsoft.com/blog/microsoft-partners-with-anthropic-to-create-official-c-sdk-for-model-context-protocol) +- [Build a Model Context Protocol (MCP) server in C#](https://devblogs.microsoft.com/dotnet/build-a-model-context-protocol-mcp-server-in-csharp/) +- [MCP C# SDK README](https://github.com/modelcontextprotocol/csharp-sdk/blob/main/README.md) + +## Related content + +- [Overview of the .NET + AI ecosystem](/dotnet/ai/dotnet-ai-ecosystem) +- [Microsoft.Extensions.AI](/dotnet/ai/ai-extensions) +- [Semantic Kernel overview for .NET](/dotnet/ai/semantic-kernel-dotnet-overview) diff --git a/docs/ai/media/mcp/model-context-protocol-architecture-diagram.png b/docs/ai/media/mcp/model-context-protocol-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e6967110454e30515a6c2d68d512ca0e3ffb8ecc GIT binary patch literal 248447 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⋙vRGc1RCTHrsi#}yAIn+QbkxBQ@Fn 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%0ATUZ7XAJ`Mo#y~Z=FfT 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 Date: Mon, 5 May 2025 09:02:58 -0700 Subject: [PATCH 3/7] fix quickstart (#46003) --- docs/ai/index.yml | 14 ++-- docs/ai/quickstarts/evaluate-ai-response.md | 4 +- docs/ai/quickstarts/generate-images.md | 12 ++-- .../quickstarts/includes/clone-sample-repo.md | 2 +- .../quickstarts/includes/create-ai-service.md | 22 ++---- docs/ai/quickstarts/prompt-model.md | 68 +++++++++---------- .../image-generation/azure-openai/benefits.md | 22 ------ .../image-generation/openai/benefits.md | 22 ------ .../prompt-completion/azure-openai/Program.cs | 28 +++++--- .../prompt-completion/openai/Program.cs | 29 +++++--- docs/ai/quickstarts/structured-output.md | 3 + docs/ai/quickstarts/use-function-calling.md | 2 +- docs/azure/index.yml | 4 +- docs/index.yml | 4 +- 14 files changed, 98 insertions(+), 138 deletions(-) delete mode 100644 docs/ai/quickstarts/snippets/image-generation/azure-openai/benefits.md delete mode 100644 docs/ai/quickstarts/snippets/image-generation/openai/benefits.md diff --git a/docs/ai/index.yml b/docs/ai/index.yml index fefbd4ebfdecf..9223c4d8e1a63 100644 --- a/docs/ai/index.yml +++ b/docs/ai/index.yml @@ -21,20 +21,20 @@ landingContent: # Card - title: Get started linkLists: - - linkListType: get-started + - linkListType: overview links: - text: Develop .NET apps with AI features url: overview.md - - text: Connect to and prompt an AI model - url: quickstarts/prompt-model.md - text: Microsoft.Extensions.AI libraries url: microsoft-extensions-ai.md + - linkListType: get-started + links: + - text: Connect to and prompt an AI model + url: quickstarts/prompt-model.md - text: Build an Azure AI chat app - url: quickstarts/get-started-openai.md - - text: Summarize text using an Azure OpenAI chat app - url: quickstarts/quickstart-openai-summarize-text.md + url: quickstarts/build-chat-app.md - text: Generate images using Azure AI - url: quickstarts/quickstart-openai-generate-images.md + url: quickstarts/generate-images.md # Card - title: Essential concepts diff --git a/docs/ai/quickstarts/evaluate-ai-response.md b/docs/ai/quickstarts/evaluate-ai-response.md index 97630751d4e30..7373ac005f6b9 100644 --- a/docs/ai/quickstarts/evaluate-ai-response.md +++ b/docs/ai/quickstarts/evaluate-ai-response.md @@ -11,7 +11,9 @@ ms.custom: devx-track-dotnet, devx-track-dotnet-ai In this quickstart, you create an MSTest app to evaluate the chat response of an OpenAI model. The test app uses the [Microsoft.Extensions.AI.Evaluation](https://www.nuget.org/packages/Microsoft.Extensions.AI.Evaluation) libraries. > [!NOTE] -> This quickstart demonstrates the simplest usage of the evaluation API. Notably, it doesn't demonstrate use of the [response caching](../conceptual/evaluation-libraries.md#cached-responses) and [reporting](../conceptual/evaluation-libraries.md#reporting) functionality, which are important if you're authoring unit tests that run as part of an "offline" evaluation pipeline. The scenario shown in this quickstart is suitable in use cases such as "online" evaluation of AI responses within production code and logging scores to telemetry, where caching and reporting aren't relevant. For a tutorial that demonstrates the caching and reporting functionality, see [Tutorial: Evaluate a model's response with response caching and reporting](../tutorials/evaluate-with-reporting.md) +> +> - The `Microsoft.Extensions.AI.Evaluation` library is currently in Preview. +> - This quickstart demonstrates the simplest usage of the evaluation API. Notably, it doesn't demonstrate use of the [response caching](../conceptual/evaluation-libraries.md#cached-responses) and [reporting](../conceptual/evaluation-libraries.md#reporting) functionality, which are important if you're authoring unit tests that run as part of an "offline" evaluation pipeline. The scenario shown in this quickstart is suitable in use cases such as "online" evaluation of AI responses within production code and logging scores to telemetry, where caching and reporting aren't relevant. For a tutorial that demonstrates the caching and reporting functionality, see [Tutorial: Evaluate a model's response with response caching and reporting](../tutorials/evaluate-with-reporting.md) ## Prerequisites diff --git a/docs/ai/quickstarts/generate-images.md b/docs/ai/quickstarts/generate-images.md index a14010a8d0c35..523948bb2bc94 100644 --- a/docs/ai/quickstarts/generate-images.md +++ b/docs/ai/quickstarts/generate-images.md @@ -98,7 +98,7 @@ Complete the following steps to create a .NET console app to connect to an AI mo ## Add the app code -1. In the **Program.cs** file, add the following code to connect and authenticate to the AI model. +1. In the `Program.cs` file, add the following code to connect and authenticate to the AI model. :::zone target="docs" pivot="azure-openai" @@ -117,12 +117,12 @@ Complete the following steps to create a .NET console app to connect to an AI mo The preceding code: - - Reads essential configuration values from the project user secrets to connect to the AI model - - Creates an `ImageClient` to connect to the AI model - - Sends a prompt to the model that describes the desired image - - Prints the URL of the generated image to the console output + - Reads essential configuration values from the project user secrets to connect to the AI model. + - Creates an `OpenAI.Images.ImageClient` to connect to the AI model. + - Sends a prompt to the model that describes the desired image. + - Prints the URL of the generated image to the console output. -1. Use the `dotnet run` command to run the app: +1. Run the app: ```dotnetcli dotnet run diff --git a/docs/ai/quickstarts/includes/clone-sample-repo.md b/docs/ai/quickstarts/includes/clone-sample-repo.md index 4a9c2d64568b7..f32ffcae527e2 100644 --- a/docs/ai/quickstarts/includes/clone-sample-repo.md +++ b/docs/ai/quickstarts/includes/clone-sample-repo.md @@ -5,7 +5,7 @@ ms.date: 07/03/2024 ms.topic: include --- -## Clone the sample repository +## (Optional) Clone the sample repository You can create your own app using the steps in the sections ahead, or you can clone the GitHub repository that contains the completed sample apps for all of the quickstarts. If you plan to use Azure OpenAI, the sample repo is also structured as an Azure Developer CLI template that can provision an Azure OpenAI resource for you. diff --git a/docs/ai/quickstarts/includes/create-ai-service.md b/docs/ai/quickstarts/includes/create-ai-service.md index 2c9532b80d143..c1d7cdcac7a95 100644 --- a/docs/ai/quickstarts/includes/create-ai-service.md +++ b/docs/ai/quickstarts/includes/create-ai-service.md @@ -1,12 +1,8 @@ ## Create the AI service -# [Azure Developer CLI](#tab/azd) - -[!INCLUDE [deploy-azd](deploy-azd.md)] - -# [Azure CLI](#tab/azure-cli) +# [Azure Portal or Azure CLI](#tab/azure-cli) -1. To provision an Azure OpenAI service and model using the Azure CLI, complete the steps in the [Create and deploy an Azure OpenAI Service resource](/azure/ai-services/openai/how-to/create-resource?pivots=cli) article. +1. To provision an Azure OpenAI service and model, complete the steps in the [Create and deploy an Azure OpenAI Service resource](/azure/ai-services/openai/how-to/create-resource) article. 1. From a terminal or command prompt, navigate to the root of your project directory. @@ -18,18 +14,8 @@ dotnet user-secrets set AZURE_OPENAI_GPT_NAME ``` -# [Azure Portal](#tab/azure-portal) - -1. To provision an Azure OpenAI service and model using the Azure portal, complete the steps in the [Create and deploy an Azure OpenAI Service resource](/azure/ai-services/openai/how-to/create-resource?pivots=web-portal) article. - -1. From a terminal or command prompt, navigate to the root of your project directory. - -1. Run the following commands to configure your Azure OpenAI endpoint and model name for the sample app: +# [Azure Developer CLI](#tab/azd) - ```bash - dotnet user-secrets init - dotnet user-secrets set AZURE_OPENAI_ENDPOINT - dotnet user-secrets set AZURE_OPENAI_GPT_NAME - ``` +[!INCLUDE [deploy-azd](deploy-azd.md)] --- diff --git a/docs/ai/quickstarts/prompt-model.md b/docs/ai/quickstarts/prompt-model.md index eebd5b86f054c..91ad6212bab08 100644 --- a/docs/ai/quickstarts/prompt-model.md +++ b/docs/ai/quickstarts/prompt-model.md @@ -1,7 +1,7 @@ --- -title: Quickstart - Summarize text using an AI chat app with .NET +title: Quickstart - Connect to and prompt an AI model with .NET description: Create a simple chat app using Microsoft.Extensions.AI to summarize a text. -ms.date: 04/09/2025 +ms.date: 05/02/2025 ms.topic: quickstart ms.custom: devx-track-dotnet, devx-track-dotnet-ai author: fboucher @@ -10,12 +10,12 @@ zone_pivot_groups: openai-library # CustomerIntent: As a .NET developer new to OpenAI, I want deploy and use sample code to interact to learn from the sample code to summarize text. --- -# Connect to and prompt an AI model using .NET +# Connect to and prompt an AI model In this quickstart, you learn how to create a .NET console chat app to connect to and prompt an OpenAI or Azure OpenAI model. The app uses the library so you can write code using AI abstractions rather than a specific SDK. AI abstractions enable you to change the underlying AI model with minimal code changes. > [!NOTE] -> The [`Microsoft.Extensions.AI`](https://www.nuget.org/packages/Microsoft.Extensions.AI/) library is currently in Preview. +> The library is currently in Preview. :::zone target="docs" pivot="openai" @@ -54,9 +54,9 @@ Complete the following steps to create a .NET console app to connect to an AI mo :::zone target="docs" pivot="azure-openai" ```bash - dotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI - dotnet add package Microsoft.Extensions.AI.OpenAI + dotnet add package Azure.Identity + dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets ``` @@ -67,18 +67,14 @@ Complete the following steps to create a .NET console app to connect to an AI mo ```bash dotnet add package OpenAI - dotnet add package Microsoft.Extensions.AI.OpenAI + dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets ``` :::zone-end -1. Open the app in Visual Studio code or your editor of choice - - ```bash - code . - ``` +1. Open the app in Visual Studio Code or your editor of choice. :::zone target="docs" pivot="azure-openai" @@ -94,11 +90,11 @@ Complete the following steps to create a .NET console app to connect to an AI mo 1. Run the following commands to configure your OpenAI API key as a secret for the sample app: - ```bash - dotnet user-secrets init - dotnet user-secrets set OpenAIKey - dotnet user-secrets set ModelName - ``` + ```bash + dotnet user-secrets init + dotnet user-secrets set OpenAIKey + dotnet user-secrets set ModelName + ``` :::zone-end @@ -106,38 +102,40 @@ Complete the following steps to create a .NET console app to connect to an AI mo The app uses the [`Microsoft.Extensions.AI`](https://www.nuget.org/packages/Microsoft.Extensions.AI/) package to send and receive requests to the AI model. -1. In the **Program.cs** file, add the following code to connect and authenticate to the AI model. +1. Copy the [benefits.md](https://raw.githubusercontent.com/dotnet/docs/refs/heads/main/docs/ai/quickstarts/snippets/prompt-completion/azure-openai/benefits.md) file to your project directory. Configure the project to copy this file to the output directory. If you're using Visual Studio, right-click on the file in Solution Explorer, select **Properties**, and then set **Copy to Output Directory** to **Copy if newer**. - :::zone target="docs" pivot="azure-openai" +1. In the `Program.cs` file, add the following code to connect and authenticate to the AI model. - :::code language="csharp" source="snippets/prompt-completion/azure-openai/program.cs" range="1-12"::: + :::zone target="docs" pivot="azure-openai" - > [!NOTE] - > searches for authentication credentials from your local tooling. If you aren't using the `azd` template to provision the Azure OpenAI resource, you'll need to assign the `Azure AI Developer` role to the account you used to sign-in to Visual Studio or the Azure CLI. For more information, see [Authenticate to Azure AI services with .NET](../azure-ai-services-authentication.md). + :::code language="csharp" source="snippets/prompt-completion/azure-openai/program.cs" id="CreateChatClient"::: - :::zone-end + > [!NOTE] + > searches for authentication credentials from your local tooling. If you aren't using the `azd` template to provision the Azure OpenAI resource, you'll need to assign the `Azure AI Developer` role to the account you used to sign-in to Visual Studio or the Azure CLI. For more information, see [Authenticate to Azure AI services with .NET](../azure-ai-services-authentication.md). - :::zone target="docs" pivot="openai" + :::zone-end - :::code language="csharp" source="snippets/prompt-completion/openai/program.cs" range="1-11"::: + :::zone target="docs" pivot="openai" - :::zone-end + :::code language="csharp" source="snippets/prompt-completion/openai/program.cs" id="CreateChatClient"::: -1. Read the *benefits.md* file content and use it to create a prompt for the model. The prompt instructs the model to summarize the file text content. + :::zone-end - :::code language="csharp" source="snippets/prompt-completion/openai/program.cs" range="13-19"::: +1. Add code to read the `benefits.md` file content and then create a prompt for the model. The prompt instructs the model to summarize the file's text content in 20 words or less. -1. Call the `InvokePromptAsync` function to send the prompt to the model to generate a response. + :::code language="csharp" source="snippets/prompt-completion/openai/program.cs" id="CreatePrompt"::: - :::code language="csharp" source="snippets/prompt-completion/openai/program.cs" range="21-23"::: +1. Call the `GetResponseAsync` method to send the prompt to the model to generate a response. -1. Use the `dotnet run` command to run the app: + :::code language="csharp" source="snippets/prompt-completion/openai/program.cs" id="GetResponse"::: - ```dotnetcli - dotnet run - ``` +1. Run the app: + + ```dotnetcli + dotnet run + ``` - The app prints out the completion response from the AI model. Customize the text content of the `benefits.md` file or the length of the summary to see the differences in the responses. + The app prints out the completion response from the AI model. Customize the text content of the `benefits.md` file or the length of the summary to see the differences in the responses. :::zone target="docs" pivot="azure-openai" diff --git a/docs/ai/quickstarts/snippets/image-generation/azure-openai/benefits.md b/docs/ai/quickstarts/snippets/image-generation/azure-openai/benefits.md deleted file mode 100644 index 082b37de0e395..0000000000000 --- a/docs/ai/quickstarts/snippets/image-generation/azure-openai/benefits.md +++ /dev/null @@ -1,22 +0,0 @@ -# Hiking Benefits - -**Hiking** is a wonderful activity that offers a plethora of benefits for both your body and mind. Here are some compelling reasons why you should consider starting hiking: - -1. **Physical Fitness**: - - **Cardiovascular Health**: Hiking gets your heart pumping, improving cardiovascular fitness. The varied terrain challenges your body and burns calories. - - Strength and Endurance: Uphill climbs and uneven trails engage different muscle groups, enhancing strength and endurance. - - Weight Management: Regular hiking can help you maintain a healthy weight. -2. Mental Well-Being: - - Stress Reduction: Nature has a calming effect. Hiking outdoors reduces stress, anxiety, and promotes relaxation. - - Improved Mood: Fresh air, sunlight, and natural surroundings boost your mood and overall happiness. - - Mindfulness: Disconnect from screens and immerse yourself in the present moment. Hiking encourages mindfulness. -3. Connection with Nature: - - Scenic Views: Explore breathtaking landscapes, from lush forests to mountain peaks. Nature's beauty rejuvenates the soul. - - Wildlife Encounters: Spot birds, animals, and plant life. Connecting with nature fosters appreciation and wonder. -4. Social Interaction: - - Group Hikes: Join hiking clubs or go with friends. It's a great way to bond and share experiences. - - Solitude: Solo hikes provide introspection and solitude, allowing you to recharge. -5. Adventure and Exploration: - - Discover Hidden Gems: Hiking takes you off the beaten path. Discover hidden waterfalls, caves, and scenic trails. - - Sense of Accomplishment: Reaching a summit or completing a challenging trail gives a sense of achievement. -Remember, hiking can be tailored to your fitness level—start with shorter, easier trails and gradually progress. Lace up those hiking boots and embark on an adventure! diff --git a/docs/ai/quickstarts/snippets/image-generation/openai/benefits.md b/docs/ai/quickstarts/snippets/image-generation/openai/benefits.md deleted file mode 100644 index 082b37de0e395..0000000000000 --- a/docs/ai/quickstarts/snippets/image-generation/openai/benefits.md +++ /dev/null @@ -1,22 +0,0 @@ -# Hiking Benefits - -**Hiking** is a wonderful activity that offers a plethora of benefits for both your body and mind. Here are some compelling reasons why you should consider starting hiking: - -1. **Physical Fitness**: - - **Cardiovascular Health**: Hiking gets your heart pumping, improving cardiovascular fitness. The varied terrain challenges your body and burns calories. - - Strength and Endurance: Uphill climbs and uneven trails engage different muscle groups, enhancing strength and endurance. - - Weight Management: Regular hiking can help you maintain a healthy weight. -2. Mental Well-Being: - - Stress Reduction: Nature has a calming effect. Hiking outdoors reduces stress, anxiety, and promotes relaxation. - - Improved Mood: Fresh air, sunlight, and natural surroundings boost your mood and overall happiness. - - Mindfulness: Disconnect from screens and immerse yourself in the present moment. Hiking encourages mindfulness. -3. Connection with Nature: - - Scenic Views: Explore breathtaking landscapes, from lush forests to mountain peaks. Nature's beauty rejuvenates the soul. - - Wildlife Encounters: Spot birds, animals, and plant life. Connecting with nature fosters appreciation and wonder. -4. Social Interaction: - - Group Hikes: Join hiking clubs or go with friends. It's a great way to bond and share experiences. - - Solitude: Solo hikes provide introspection and solitude, allowing you to recharge. -5. Adventure and Exploration: - - Discover Hidden Gems: Hiking takes you off the beaten path. Discover hidden waterfalls, caves, and scenic trails. - - Sense of Accomplishment: Reaching a summit or completing a challenging trail gives a sense of achievement. -Remember, hiking can be tailored to your fitness level—start with shorter, easier trails and gradually progress. Lace up those hiking boots and embark on an adventure! diff --git a/docs/ai/quickstarts/snippets/prompt-completion/azure-openai/Program.cs b/docs/ai/quickstarts/snippets/prompt-completion/azure-openai/Program.cs index b4145e6a4d708..b07df36170a0c 100644 --- a/docs/ai/quickstarts/snippets/prompt-completion/azure-openai/Program.cs +++ b/docs/ai/quickstarts/snippets/prompt-completion/azure-openai/Program.cs @@ -1,9 +1,12 @@ -using Microsoft.Extensions.Configuration; +// +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.AI; using Azure.AI.OpenAI; using Azure.Identity; -var config = new ConfigurationBuilder().AddUserSecrets().Build(); +var config = new ConfigurationBuilder() + .AddUserSecrets() + .Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; @@ -11,15 +14,20 @@ new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetChatClient(deployment) .AsIChatClient(); +// -// Create and print out the prompt +// +string text = File.ReadAllText("benefits.md"); string prompt = $""" - summarize the the following text in 20 words or less: - {File.ReadAllText("benefits.md")} + Summarize the the following text in 20 words or less: + {text} """; +// -Console.WriteLine($"user >>> {prompt}"); - -// Submit the prompt and print out the response -ChatResponse response = await client.GetResponseAsync(prompt, new ChatOptions { MaxOutputTokens = 400 }); -Console.WriteLine($"assistant >>> {response}"); +// +// Submit the prompt and print out the response. +ChatResponse response = await client.GetResponseAsync( + prompt, + new ChatOptions { MaxOutputTokens = 400 }); +Console.WriteLine(response); +// diff --git a/docs/ai/quickstarts/snippets/prompt-completion/openai/Program.cs b/docs/ai/quickstarts/snippets/prompt-completion/openai/Program.cs index ae01b4dbf88eb..f8628a6a5b9c7 100644 --- a/docs/ai/quickstarts/snippets/prompt-completion/openai/Program.cs +++ b/docs/ai/quickstarts/snippets/prompt-completion/openai/Program.cs @@ -1,23 +1,30 @@ -using Microsoft.Extensions.AI; +// +using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; using OpenAI; -IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets().Build(); +IConfigurationRoot config = new ConfigurationBuilder() + .AddUserSecrets() + .Build(); string? model = config["ModelName"]; string? key = config["OpenAIKey"]; -// Create the IChatClient IChatClient client = new OpenAIClient(key).GetChatClient(model).AsIChatClient(); +// -// Create and print out the prompt +// +string text = File.ReadAllText("benefits.md"); string prompt = $""" - summarize the the following text in 20 words or less: - {File.ReadAllText("benefits.md")} + Summarize the the following text in 20 words or less: + {text} """; +// -Console.WriteLine($"user >>> {prompt}"); - -// Submit the prompt and print out the response -ChatResponse response = await client.GetResponseAsync(prompt, new ChatOptions { MaxOutputTokens = 400 }); -Console.WriteLine($"assistant >>> {response}"); +// +// Submit the prompt and print out the response. +ChatResponse response = await client.GetResponseAsync( + prompt, + new ChatOptions { MaxOutputTokens = 400 }); +Console.WriteLine(response); +// diff --git a/docs/ai/quickstarts/structured-output.md b/docs/ai/quickstarts/structured-output.md index dc9586121f8c4..117d23e0725f6 100644 --- a/docs/ai/quickstarts/structured-output.md +++ b/docs/ai/quickstarts/structured-output.md @@ -10,6 +10,9 @@ ms.custom: devx-track-dotnet, devx-track-dotnet-ai In this quickstart, you create a chat app that requests a response with *structured output*. A structured output response is a chat response that's of a type you specify instead of just plain text. The chat app you create in this quickstart analyzes sentiment of various product reviews, categorizing each review according to the values of a custom enumeration. +> [!NOTE] +> The library, which is used in this quickstart, is currently in Preview. + ## Prerequisites - [.NET 8 or a later version](https://dotnet.microsoft.com/download) diff --git a/docs/ai/quickstarts/use-function-calling.md b/docs/ai/quickstarts/use-function-calling.md index 6082725a210a0..6f37aa0c7a995 100644 --- a/docs/ai/quickstarts/use-function-calling.md +++ b/docs/ai/quickstarts/use-function-calling.md @@ -75,7 +75,7 @@ Complete the following steps to create a .NET console app to connect to an AI mo :::zone-end -1. Open the app in Visual Studio code or your editor of choice +1. Open the app in Visual Studio Code or your editor of choice ```bash code . diff --git a/docs/azure/index.yml b/docs/azure/index.yml index fbb9e38f2aedb..c0a20915db639 100644 --- a/docs/azure/index.yml +++ b/docs/azure/index.yml @@ -99,11 +99,11 @@ conceptualContent: url: ../ai/overview.md text: AI for .NET overview - itemType: quickstart - url: ../ai/quickstarts/get-started-openai.md + url: ../ai/quickstarts/build-chat-app.md text: Build a chat app - itemType: quickstart text: Generate images - url: ../ai/quickstarts/quickstart-openai-generate-images.md + url: ../ai/quickstarts/generate-images.md - itemType: concept text: Understand prompt engineering url: ../ai/conceptual/prompt-engineering-dotnet.md diff --git a/docs/index.yml b/docs/index.yml index d09d7011ef4b8..e657475002e70 100644 --- a/docs/index.yml +++ b/docs/index.yml @@ -111,7 +111,7 @@ conceptualContent: # Card - title: Develop .NET apps links: - - url: ai/quickstarts/get-started-openai.md + - url: ai/quickstarts/build-chat-app.md itemType: quickstart text: Build an Azure AI chat app with .NET - url: /dotnet/desktop/wpf/get-started/create-app-visual-studio @@ -316,7 +316,7 @@ additionalContent: links: - url: ai/index.yml text: AI for .NET developers - - url: ai/quickstarts/get-started-openai.md + - url: ai/quickstarts/build-chat-app.md text: Build a chat app - url: ai/conceptual/prompt-engineering-dotnet.md text: Understand prompt engineering From 673a3f821789bedd0b32f3842861caf9e1b78778 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 5 May 2025 09:05:48 -0700 Subject: [PATCH 4/7] Update package index with latest published versions (#46004) --- docs/azure/includes/dotnet-all.md | 2 +- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 9ee6338cbb203..06216a1b26645 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -109,7 +109,7 @@ | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | | System Events | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.EventGrid.SystemEvents/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid.SystemEvents-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.SystemEvents_1.0.0-beta.2/sdk/eventgrid/Azure.Messaging.EventGrid.SystemEvents/) | -| System.ClientModel | NuGet [1.3.0](https://www.nuget.org/packages/System.ClientModel/1.3.0)
NuGet [1.4.0-beta.6](https://www.nuget.org/packages/System.ClientModel/1.4.0-beta.6) | [docs](/dotnet/api/overview/azure/System.ClientModel-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.3.0/sdk/core/System.ClientModel/)
GitHub [1.4.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.4.0-beta.6/sdk/core/System.ClientModel/) | +| System.ClientModel | NuGet [1.4.0](https://www.nuget.org/packages/System.ClientModel/1.4.0) | [docs](/dotnet/api/overview/azure/System.ClientModel-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.4.0/sdk/core/System.ClientModel/) | | Tables | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Data.Tables/12.10.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.10.0/sdk/tables/Azure.Data.Tables/) | | Text Analytics | NuGet [5.3.0](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.3.0) | [docs](/dotnet/api/overview/azure/AI.TextAnalytics-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.3.0/sdk/textanalytics/Azure.AI.TextAnalytics/) | | Text Authoring | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.Text.Authoring/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.Text.Authoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Text.Authoring_1.0.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.Text.Authoring/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index e646c3430c507..93a9c366f7e2f 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -113,7 +113,7 @@ | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | | System Events | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.EventGrid.SystemEvents/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid.SystemEvents-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid.SystemEvents_1.0.0-beta.2/sdk/eventgrid/Azure.Messaging.EventGrid.SystemEvents/) | -| System.ClientModel | NuGet [1.3.0](https://www.nuget.org/packages/System.ClientModel/1.3.0)
NuGet [1.4.0-beta.6](https://www.nuget.org/packages/System.ClientModel/1.4.0-beta.6) | [docs](/dotnet/api/overview/azure/System.ClientModel-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.3.0/sdk/core/System.ClientModel/)
GitHub [1.4.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.4.0-beta.6/sdk/core/System.ClientModel/) | +| System.ClientModel | NuGet [1.4.0](https://www.nuget.org/packages/System.ClientModel/1.4.0) | [docs](/dotnet/api/overview/azure/System.ClientModel-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/System.ClientModel_1.4.0/sdk/core/System.ClientModel/) | | Tables | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Data.Tables/12.10.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.10.0/sdk/tables/Azure.Data.Tables/) | | Text Analytics | NuGet [5.3.0](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.3.0) | [docs](/dotnet/api/overview/azure/AI.TextAnalytics-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.3.0/sdk/textanalytics/Azure.AI.TextAnalytics/) | | Text Authoring | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.Text.Authoring/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.Text.Authoring-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Text.Authoring_1.0.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.Text.Authoring/) | From 652bb96b4e7264eb84fcd8845a105da5c8dd8f0a Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 5 May 2025 15:20:15 -0400 Subject: [PATCH 5/7] Consolidate interpolated string tutorials (#46013) * Consolidate interpolated string tutorials There were three very similar tutorials on interpolated strings. Combine them into one article. Fixes #46012 This is worth doing regardless of the outcome of the discussion regarding the new warnings. * warnings, part 1 * fix warnings * fix warnings and proofread * one more bit of warnings --- .openpublishing.redirection.csharp.json | 22 ++- .../language-reference/tokens/interpolated.md | 2 +- .../csharp/programming-guide/strings/index.md | 2 +- docs/csharp/toc.yml | 6 +- .../exploration/interpolated-strings-local.md | 162 ------------------ .../exploration/interpolated-strings.yml | 108 ------------ .../snippets/StringInterpolation/Program.cs | 28 +++ docs/csharp/tutorials/string-interpolation.md | 24 ++- docs/whats-new/dotnet-9-release.md | 2 +- 9 files changed, 65 insertions(+), 291 deletions(-) delete mode 100644 docs/csharp/tutorials/exploration/interpolated-strings-local.md delete mode 100644 docs/csharp/tutorials/exploration/interpolated-strings.yml diff --git a/.openpublishing.redirection.csharp.json b/.openpublishing.redirection.csharp.json index 684092eec0dee..2a4cc85d877fe 100644 --- a/.openpublishing.redirection.csharp.json +++ b/.openpublishing.redirection.csharp.json @@ -4042,12 +4042,12 @@ }, { "source_path_from_root": "/docs/csharp/quick-starts/interpolated-strings-local.md", - "redirect_url": "/dotnet/csharp/tutorials/exploration/interpolated-strings-local", - "redirect_document_id": true + "redirect_url": "/dotnet/csharp/tutorials/string-interpolation" }, { - "source_path_from_root": "/docs/csharp/quick-starts/interpolated-strings.md", - "redirect_url": "/dotnet/csharp/tutorials/exploration/interpolated-strings" + "source_path_from_root": "/docs/csharp/quick-starts/interpolated-strings.yml", + "redirect_url": "/dotnet/csharp/tutorials/string-interpolation", + "redirect_document_id": true }, { "source_path_from_root": "/docs/csharp/quick-starts/introduction-to-classes.md", @@ -4060,7 +4060,7 @@ }, { "source_path_from_root": "/docs/csharp/quick-starts/local-environment.md", - "redirect_url": "/dotnet/csharp/tour-of-csharp/tutorials", + "redirect_url": "/dotnet/csharp/tour-of-csharp/tutorials/", "redirect_document_id": true }, { @@ -4208,6 +4208,14 @@ "source_path_from_root": "/docs/csharp/tutorials/exploration/top-level-statements.md", "redirect_url": "/dotnet/csharp/tutorials/top-level-statements" }, + { + "source_path_from_root": "/docs/csharp/tutorials/exploration/interpolated-strings-local.md", + "redirect_url": "/dotnet/csharp/tutorials/string-interpolation" + }, + { + "source_path_from_root": "/docs/csharp/tutorials/exploration/interpolated-strings.yml", + "redirect_url": "/dotnet/csharp/tutorials/string-interpolation" + }, { "source_path_from_root": "/docs/csharp/tutorials/generate-consume-asynchronous-stream.md", "redirect_url": "/dotnet/csharp/asynchronous-programming/generate-consume-asynchronous-stream" @@ -4242,11 +4250,11 @@ }, { "source_path_from_root": "/docs/csharp/tutorials/intro-to-csharp/interpolated-strings-local.md", - "redirect_url": "/dotnet/csharp/tutorials/exploration/interpolated-strings-local" + "redirect_url": "/dotnet/csharp/tutorials/interpolated-strings" }, { "source_path_from_root": "/docs/csharp/tutorials/intro-to-csharp/interpolated-strings.yml", - "redirect_url": "/dotnet/csharp/tutorials/exploration/interpolated-strings" + "redirect_url": "/dotnet/csharp/tutorials/interpolated-strings" }, { "source_path_from_root": "/docs/csharp/tutorials/intro-to-csharp/introduction-to-classes.md", diff --git a/docs/csharp/language-reference/tokens/interpolated.md b/docs/csharp/language-reference/tokens/interpolated.md index fab7606294997..8ea3d4c109bc1 100644 --- a/docs/csharp/language-reference/tokens/interpolated.md +++ b/docs/csharp/language-reference/tokens/interpolated.md @@ -88,7 +88,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/exploration/interpolated-strings.yml) interactive tutorial. You can also check another [String interpolation in C#](../../tutorials/string-interpolation.md) 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) interactive tutorial. That tutorial demonstrates how to use interpolated strings to produce formatted strings. ## Compilation of interpolated strings diff --git a/docs/csharp/programming-guide/strings/index.md b/docs/csharp/programming-guide/strings/index.md index 35f77255e8721..26bd10874d165 100644 --- a/docs/csharp/programming-guide/strings/index.md +++ b/docs/csharp/programming-guide/strings/index.md @@ -106,7 +106,7 @@ A format string is a string whose contents are determined dynamically at run tim ### String interpolation -You declare [*Interpolated strings*](../../language-reference/tokens/interpolated.md) with the `$` special character. An interpolated string includes interpolated expressions in braces. If you're new to string interpolation, see the [String interpolation - C# interactive tutorial](../../tutorials/exploration/interpolated-strings.yml) for a quick overview. +You declare [*Interpolated strings*](../../language-reference/tokens/interpolated.md) with the `$` special character. An interpolated string includes interpolated expressions in braces. If you're new to string interpolation, see the [String interpolation - C# tutorial](../../tutorials/string-interpolation.md) for several examples. Use string interpolation to improve the readability and maintainability of your code. String interpolation achieves the same results as the `String.Format` method, but is easier to use and improves inline clarity. diff --git a/docs/csharp/toc.yml b/docs/csharp/toc.yml index 735ed842fbc44..7a89acd91ef69 100644 --- a/docs/csharp/toc.yml +++ b/docs/csharp/toc.yml @@ -186,13 +186,9 @@ items: 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: Explore patterns in objects href: tutorials/patterns-objects.md - - name: Advanced scenarios for string Interpolation + - name: String interpolation href: tutorials/string-interpolation.md - name: Console Application href: tutorials/console-teleprompter.md diff --git a/docs/csharp/tutorials/exploration/interpolated-strings-local.md b/docs/csharp/tutorials/exploration/interpolated-strings-local.md deleted file mode 100644 index 1aae9581ea3bf..0000000000000 --- a/docs/csharp/tutorials/exploration/interpolated-strings-local.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: String interpolation tutorial -description: This tutorial shows you how to use the C# string interpolation feature to include formatted expression results in a larger string. -ms.date: 10/23/2018 ---- -# Use string interpolation to construct formatted strings - -This tutorial teaches you how to use C# [string interpolation](../../language-reference/tokens/interpolated.md) to insert values into a single result string. You write C# code and see the results of compiling and running it. The tutorial contains a series of lessons that show you how to insert values into a string and format those values in different ways. - -This tutorial expects that you have a machine you can use for development. The .NET tutorial [Hello World in 10 minutes](https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro) has instructions for setting up your local development environment on Windows, Linux, or macOS. You can also complete the [interactive version](interpolated-strings.yml) of this tutorial in your browser. - -## Create an interpolated string - -Create a directory named *interpolated*. Make it the current directory and run the following command from a console window: - -```dotnetcli -dotnet new console -``` - -This command creates a new .NET Core console application in the current directory. - -Open *Program.cs* in your favorite editor, and replace the line `Console.WriteLine("Hello World!");` with the following code, where you replace `` with your name: - -```csharp -var name = ""; -Console.WriteLine($"Hello, {name}. It's a pleasure to meet you!"); -``` - -Try this code by typing `dotnet run` in your console window. When you run the program, it displays a single string that includes your name in the greeting. The string included in the method call is an *interpolated string expression*. It's a kind of template that lets you construct a single string (called the *result string*) from a string that includes embedded code. Interpolated strings are particularly useful for inserting values into a string or concatenating (joining together) strings. - -This simple example contains the two elements that every interpolated string must have: - -- A string literal that begins with the `$` character before its opening quotation mark character. There can't be any spaces between the `$` symbol and the quotation mark character. (If you'd like to see what happens if you include one, insert a space after the `$` character, save the file, and run the program again by typing `dotnet run` in the console window. The C# compiler displays an error message, "error CS1056: Unexpected character '$'".) - -- One or more *interpolation expressions*. An interpolation expression is indicated by an opening and closing brace (`{` and `}`). You can put any C# expression that returns a value (including `null`) inside the braces. - -Let's try a few more string interpolation examples with some other data types. - -## Include different data types - -In the previous section, you used string interpolation to insert one string inside of another. The result of an interpolation expression can be of any data type, though. Let's include values of various data types in an interpolated string. - -In the following example, we first define a [class](../../fundamentals/types/classes.md) data type `Vegetable` that has a `Name` [property](../../programming-guide/classes-and-structs/properties.md) and a `ToString` [method](../../methods.md), which [overrides](../../language-reference/keywords/override.md) the behavior of the method. The [`public` access modifier](../../language-reference/keywords/public.md) makes that method available to any client code to get the string representation of a `Vegetable` instance. In the example the `Vegetable.ToString` method returns the value of the `Name` property that is initialized at the `Vegetable` [constructor](../../programming-guide/classes-and-structs/constructors.md): - -```csharp -public Vegetable(string name) => Name = name; -``` - -Then we create an instance of the `Vegetable` class named `item` by using the [`new` operator](../../language-reference/operators/new-operator.md) and providing a name for the constructor `Vegetable`: - -```csharp -var item = new Vegetable("eggplant"); -``` - -Finally, we include the `item` variable into an interpolated string that also contains a value, a value, and a `Unit` [enumeration](../../language-reference/builtin-types/enum.md) value. Replace all of the C# code in your editor with the following code, and then use the `dotnet run` command to run it: - -```csharp -using System; - -public class Vegetable -{ - public Vegetable(string name) => Name = name; - - public string Name { get; } - - public override string ToString() => Name; -} - -public class Program -{ - public enum Unit { item, kilogram, gram, dozen }; - - public static void Main() - { - var item = new Vegetable("eggplant"); - var date = DateTime.Now; - var price = 1.99m; - var unit = Unit.item; - Console.WriteLine($"On {date}, the price of {item} was {price} per {unit}."); - } -} -``` - -Note that the interpolation expression `item` in the interpolated string resolves to the text "eggplant" in the result string. That's because, when the type of the expression result is not a string, the result is resolved to a string in the following way: - -- If the interpolation expression evaluates to `null`, an empty string ("", or ) is used. - -- If the interpolation expression doesn't evaluate to `null`, typically the `ToString` method of the result type is called. You can test this by updating the implementation of the `Vegetable.ToString` method. You might not even need to implement the `ToString` method since every type has some implementation of this method. To test this, comment out the definition of the `Vegetable.ToString` method in the example (to do that, put a comment symbol, `//`, in front of it). In the output, the string "eggplant" is replaced by the fully qualified type name ("Vegetable" in this example), which is the default behavior of the method. The default behavior of the `ToString` method for an enumeration value is to return the string representation of the value. - -In the output from this example, the date is too precise (the price of eggplant doesn't change every second), and the price value doesn't indicate a unit of currency. In the next section, you'll learn how to fix those issues by controlling the format of string representations of the expression results. - -## Control the formatting of interpolation expressions - -In the previous section, two poorly formatted strings were inserted into the result string. One was a date and time value for which only the date was appropriate. The second was a price that didn't indicate its unit of currency. Both issues are easy to address. String interpolation lets you specify *format strings* that control the formatting of particular types. Modify the call to `Console.WriteLine` from the previous example to include the format strings for the date and price expressions as shown in the following line: - -```csharp -Console.WriteLine($"On {date:d}, the price of {item} was {price:C2} per {unit}."); -``` - -You specify a format string by following the interpolation expression with a colon (":") and the format string. "d" is a [standard date and time format string](../../../standard/base-types/standard-date-and-time-format-strings.md#the-short-date-d-format-specifier) that represents the short date format. "C2" is a [standard numeric format string](../../../standard/base-types/standard-numeric-format-strings.md#currency-format-specifier-c) that represents a number as a currency value with two digits after the decimal point. - -A number of types in the .NET libraries support a predefined set of format strings. These include all the numeric types and the date and time types. For a complete list of types that support format strings, see [Format Strings and .NET Class Library Types](../../../standard/base-types/formatting-types.md#format-strings-and-net-types) in the [Formatting Types in .NET](../../../standard/base-types/formatting-types.md) article. - -Try modifying the format strings in your text editor and, each time you make a change, rerun the program to see how the changes affect the formatting of the date and time and the numeric value. Change the "d" in `{date:d}` to "t" (to display the short time format), "y" (to display the year and month), and "yyyy" (to display the year as a four-digit number). Change the "C2" in `{price:C2}` to "e" (for exponential notation) and "F3" (for a numeric value with three digits after the decimal point). - -In addition to controlling formatting, you can also control the field width and alignment of the formatted strings that are included in the result string. In the next section, you'll learn how to do this. - -## Control the field width and alignment of interpolation expressions - -Ordinarily, when the result of an interpolation expression is formatted to string, that string is included in a result string without leading or trailing spaces. Particularly when you work with a set of data, being able to control a field width and text alignment helps to produce a more readable output. To see this, replace all the code in your text editor with the following code, then type `dotnet run` to execute the program: - -```csharp -using System; -using System.Collections.Generic; - -public class Example -{ - public static void Main() - { - var titles = new Dictionary() - { - ["Doyle, Arthur Conan"] = "Hound of the Baskervilles, The", - ["London, Jack"] = "Call of the Wild, The", - ["Shakespeare, William"] = "Tempest, The" - }; - - Console.WriteLine("Author and Title List"); - Console.WriteLine(); - Console.WriteLine($"|{"Author",-25}|{"Title",30}|"); - foreach (var title in titles) - Console.WriteLine($"|{title.Key,-25}|{title.Value,30}|"); - } -} -``` - -The names of authors are left-aligned, and the titles they wrote are right-aligned. You specify the alignment by adding a comma (",") after an interpolation expression and designating the *minimum* field width. If the specified value is a positive number, the field is right-aligned. If it is a negative number, the field is left-aligned. - -Try removing the negative signs from the `{"Author",-25}` and `{title.Key,-25}` code and run the example again, as the following code does: - -```csharp -Console.WriteLine($"|{"Author",25}|{"Title",30}|"); -foreach (var title in titles) - Console.WriteLine($"|{title.Key,25}|{title.Value,30}|"); -``` - -This time, the author information is right-aligned. - -You can combine an alignment specifier and a format string for a single interpolation expression. To do that, specify the alignment first, followed by a colon and the format string. Replace all of the code inside the `Main` method with the following code, which displays three formatted strings with defined field widths. Then run the program by entering the `dotnet run` command. - -```csharp -Console.WriteLine($"[{DateTime.Now,-20:d}] Hour [{DateTime.Now,-10:HH}] [{1063.342,15:N2}] feet"); -``` - -The output looks something like the following: - -```console -[04/14/2018 ] Hour [16 ] [ 1,063.34] feet -``` - -You've completed the string interpolation tutorial. - -For more information, see the [String interpolation](../../language-reference/tokens/interpolated.md) topic and the [String interpolation in C#](../string-interpolation.md) tutorial. diff --git a/docs/csharp/tutorials/exploration/interpolated-strings.yml b/docs/csharp/tutorials/exploration/interpolated-strings.yml deleted file mode 100644 index 20f86dfece642..0000000000000 --- a/docs/csharp/tutorials/exploration/interpolated-strings.yml +++ /dev/null @@ -1,108 +0,0 @@ -### YamlMime:Tutorial -title: Use string interpolation to construct formatted strings -metadata: - title: String interpolation interactive tutorial - description: In this tutorial, you use your browser to explore the C# string interpolation feature interactively. You write C# code and see the results of compiling and running your code directly in the browser. - audience: Developer - ms.custom: mvc - ms.date: 08/24/2018 - ms.topic: interactive-tutorial - level: Beginner - displayType: two-column - interactive: csharp -items: -- durationInMinutes: 2 - content: | - This tutorial teaches you how to use [string interpolation](../../language-reference/tokens/interpolated.md) to insert values into a single string. You also learn how to control text formatting of the result string. You use your browser to write and run C# code and can immediately see the results. -- title: Create an interpolated string - durationInMinutes: 2 - content: | - Run the following code in the interactive window. Select the **Enter focus mode** button. Then, type the following code block in the interactive window (replace `` with your name) and select **Run**: - - ```csharp - var name = ""; - Console.WriteLine($"Hello, {name}. It's a pleasure to meet you!"); - ``` - - When you run the code, **Output** displays a string that includes your name in the greeting. The string argument of the method call is an *interpolated string expression*. It's a kind of template that lets you construct a single string (called the *result string*) from a string that includes embedded code. Interpolated string expressions are particularly useful for inserting values into a string or concatenating (joining together) several strings. - - The example above contains the two elements that every interpolated string expression must have: - - - A string literal that begins with the `$` character before its opening quotation mark character. There can't be any spaces between the `$` symbol and the quotation mark character. (If you'd like to see what happens if you include one, insert a space after the `$` character in the interactive window and run the updated code. The C# compiler complains, "Unexpected character '$'".) - - - One or more *interpolation expressions*. An interpolation expression is indicated by an opening and closing brace (`{` and `}`). You can put any C# expression that returns a value (including `null`) inside the braces. - - Let's try a few more string interpolation examples with some other data types. - -- title: Include different data types - durationInMinutes: 5 - content: | - In the previous step, you used string interpolation to insert one string inside of another. Each interpolation expression that is part of an interpolated string expression can be of any data type, though. Let's include values of various data type expressions in an interpolated string. - - In the following example, we first define a [tuple](../../language-reference/builtin-types/value-tuples.md) that has `Name`, `Price`, and `perPackage` members. Run the following code in the interactive window: - - ```csharp - var item = (Name: "eggplant", Price: 1.99m, perPackage: 3); - var date = DateTime.Now; - Console.WriteLine($"On {date}, the price of {item.Name} was {item.Price} per {item.perPackage} items."); - ``` - - Note that the interpolation expression `item.Price` in the interpolated string resolves to the text "1.99" in the result string. That's because, when the type of the expression result is not a string, the result is resolved to a string in the following way: - - - If the interpolation expression evaluates to `null`, an empty string ("", or ) is used. - - - If the interpolation expression doesn't evaluate to `null`, typically the `ToString` method of the result expression is called. - - In the output from this example, the date is too precise (the price of eggplant doesn't change every second), and the price value doesn't indicate a unit of currency. In the next step, you'll learn how to fix those issues by controlling the format of string representations of the expression results. - -- title: Control the formatting of interpolation expressions - durationInMinutes: 5 - content: | - In the previous step, two poorly formatted strings were inserted into the result string. One was a date and time value for which only the date was appropriate. The second was a price that didn't indicate its unit of currency. Both issues are easy to address. String interpolation lets you specify *format strings* that control the formatting of particular types. Modify the call to `Console.WriteLine` from the previous example to include the format strings for the date and price expressions as shown in the following line: - - ```csharp - Console.WriteLine($"On {date:d}, the price of {item.Name} was {item.Price:C2} per {item.perPackage} items"); - ``` - - You specify a format string by following the interpolation expression with a colon (":") and the format string. "d" is a [standard date and time format string](../../../standard/base-types/standard-date-and-time-format-strings.md#the-short-date-d-format-specifier) that represents the short date format. "C2" is a [standard numeric format string](../../../standard/base-types/standard-numeric-format-strings.md#currency-format-specifier-c) that represents a number as a currency value with two digits after the decimal point. - - A number of types in the .NET libraries support a predefined set of format strings. These include all the numeric types and the date and time types. For a complete list of types that support format strings, see [Format Strings and .NET Class Library Types](../../../standard/base-types/formatting-types.md#format-strings-and-net-types) in the [Formatting Types in .NET](../../../standard/base-types/formatting-types.md) article. - - Try modifying the format strings in the example to see how they affect the formatting of the date and time and the numeric value. Change the "d" in `{date:d}` to "t" (to display the short time format), "y" (to display the year and month), and "yyyy" (to display the year as a four-digit number). Change the "C2" in `{price:C2}` to "e" (for exponential notation) and "F3" (for a numeric value with three digits after the decimal point). - - In addition to controlling formatting, you can also control the field width and alignment of the formatted strings that are included in the result string. In the next step, you'll learn how to do this. - -- title: Control the field width and alignment of interpolation expressions - durationInMinutes: 6 - content: | - Ordinarily, when the result of an interpolated string expression is formatted to string, that string is included in a result string without leading or trailing spaces. Particularly when you work with a set of data, being able to control a field width and text alignment helps to produce a more readable output. To see this, run the following code: - - ```csharp - var inventory = new Dictionary() - { - ["hammer, ball pein"] = 18, - ["hammer, cross pein"] = 5, - ["screwdriver, Phillips #2"] = 14 - }; - - Console.WriteLine($"Inventory on {DateTime.Now:d}"); - Console.WriteLine(" "); - Console.WriteLine($"|{"Item",-25}|{"Quantity",10}|"); - foreach (var item in inventory) - Console.WriteLine($"|{item.Key,-25}|{item.Value,10}|"); - ``` - - The item names are left-aligned, and their quantities are right-aligned. You specify the alignment by adding a comma (",") after an interpolation expression and designating the *minimum* field width. If the specified value is a positive number, the field is right-aligned. If it is a negative number, the field is left-aligned. - - Try removing the negative signs from the `{"Item",-25}` and `{item.Key,-25}` code and run the example again. This time, the item names are right-aligned. - - You can combine an alignment specifier and a format string for a single interpolation expression. To do that, specify the alignment first, followed by a colon and the format string. Try the following code that displays three formatted strings with defined field widths: - - ```csharp - Console.WriteLine($"[{DateTime.Now,-20:d}] Hour [{DateTime.Now,-10:HH}] [{1063.342,15:N2}] feet"); - ``` - -- content: | - You've completed the string interpolation interactive tutorial. You can visit the [.NET site](https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro) to download the .NET Core SDK, create a project on your machine, and keep coding. - - For more information, see [String interpolation](../../language-reference/tokens/interpolated.md). diff --git a/docs/csharp/tutorials/snippets/StringInterpolation/Program.cs b/docs/csharp/tutorials/snippets/StringInterpolation/Program.cs index 7f1183e7d957d..8a270a1365ac6 100644 --- a/docs/csharp/tutorials/snippets/StringInterpolation/Program.cs +++ b/docs/csharp/tutorials/snippets/StringInterpolation/Program.cs @@ -50,6 +50,34 @@ private static void SpecifyFormatString() // } + private static void SpecifyAlignment() + { + + // + var titles = new Dictionary() + { + ["Doyle, Arthur Conan"] = "Hound of the Baskervilles, The", + ["London, Jack"] = "Call of the Wild, The", + ["Shakespeare, William"] = "Tempest, The" + }; + + Console.WriteLine("Author and Title List"); + Console.WriteLine(); + Console.WriteLine($"|{"Author",-25}|{"Title",30}|"); + foreach (var title in titles) + { + Console.WriteLine($"|{title.Key,-25}|{title.Value,30}|"); + } + // Output: + // Author and Title List + // + // |Author |Title | + // |Doyle, Arthur Conan |Hound of the Baskervilles, The | + // |London, Jack | Call of the Wild, The | + // |Shakespeare, William | Tempest, The | + // + } + private static void SpecifyAlignmentAndFormat() { // diff --git a/docs/csharp/tutorials/string-interpolation.md b/docs/csharp/tutorials/string-interpolation.md index 5bf22fd22279f..65e2624751a24 100644 --- a/docs/csharp/tutorials/string-interpolation.md +++ b/docs/csharp/tutorials/string-interpolation.md @@ -3,11 +3,11 @@ title: String interpolation description: Learn how to include formatted expression results in a result string in C# with string interpolation. author: pkulikov ms.subservice: fundamentals -ms.date: 08/28/2023 +ms.date: 05/05/2025 --- # String interpolation in C\# -This tutorial shows you how to use [string interpolation](../language-reference/tokens/interpolated.md) to format and include expression results in a result string. The examples assume that you are familiar with basic C# concepts and .NET type formatting. If you are new to string interpolation or .NET type formatting, check out the [interactive string interpolation tutorial](exploration/interpolated-strings.yml) first. For more information about formatting types in .NET, see [Formatting types in .NET](../../standard/base-types/formatting-types.md). +This tutorial shows you how to use [string interpolation](../language-reference/tokens/interpolated.md) to format and include expression results in a result string. The examples assume that you're familiar with basic C# concepts and .NET type formatting. For more information about formatting types in .NET, see [Formatting types in .NET](../../standard/base-types/formatting-types.md). ## Introduction @@ -21,11 +21,19 @@ As the example shows, you include an expression in an interpolated string by enc {} ``` -Interpolated strings support all the capabilities of the [string composite formatting](../../standard/base-types/composite-formatting.md) feature. That makes them a more readable alternative to the use of the method. +Interpolated strings support all the capabilities of the [string composite formatting](../../standard/base-types/composite-formatting.md) feature. That makes them a more readable alternative to the use of the method. Every interpolated string must have: + +- A string literal that begins with the `$` character before its opening quotation mark character. There can't be any spaces between the `$` symbol and the quotation mark character. +- One or more *interpolation expressions*. You indicate an interpolation expression with an opening and closing brace (`{` and `}`). You can put any C# expression that returns a value (including `null`) inside the braces. + +C# evaluates the expression between the `{` and `}` characters with the following rules: + +- If the interpolation expression evaluates to `null`, an empty string ("", or ) is used. +- If the interpolation expression doesn't evaluate to `null`, typically the `ToString` method of the result type is called. ## How to specify a format string for an interpolation expression -To specify a format string that's supported by the type of the expression result, follow the interpolation expression with a colon (":") and the format string: +To specify a format string supported by the type of the expression result, follow the interpolation expression with a colon (":") and the format string: ```csharp {:} @@ -45,7 +53,11 @@ To specify the minimum field width and the alignment of the formatted expression {,} ``` -If the *width* value is positive, the formatted expression result is right-aligned; if negative, it's left-aligned. +The following code sample uses the minimum field width to create a tabular output: + +:::code language="csharp" interactive="try-dotnet-method" source="./snippets/StringInterpolation/Program.cs" id="AlignmentString"::: + +If the *width* value is positive, the formatted expression result is right-aligned; if negative, it's left-aligned. Remove the `-` signs before the width specifier and run the sample again to see the results. If you need to specify both width and a format string, start with the width component: @@ -65,7 +77,7 @@ For more information, see the [Width component](../../standard/base-types/compos Interpolated strings support all escape sequences that can be used in ordinary string literals. For more information, see [String escape sequences](../programming-guide/strings/index.md#string-escape-sequences). -To interpret escape sequences literally, use a [verbatim](../language-reference/tokens/verbatim.md) string literal. An interpolated verbatim string starts with the both `$` and `@` characters. You can use `$` and `@` in any order: both `$@"..."` and `@$"..."` are valid interpolated verbatim strings. +To interpret escape sequences literally, use a [verbatim](../language-reference/tokens/verbatim.md) string literal. An interpolated verbatim string starts with both the `$` and `@` characters. You can use `$` and `@` in any order: both `$@"..."` and `@$"..."` are valid interpolated verbatim strings. To include a brace, "{" or "}", in a result string, use two braces, "{{" or "}}". For more information, see the [Escaping braces](../../standard/base-types/composite-formatting.md#escaping-braces) section of the [Composite formatting](../../standard/base-types/composite-formatting.md) article. diff --git a/docs/whats-new/dotnet-9-release.md b/docs/whats-new/dotnet-9-release.md index 8cc7e34ce8e8a..5981917da009f 100644 --- a/docs/whats-new/dotnet-9-release.md +++ b/docs/whats-new/dotnet-9-release.md @@ -158,7 +158,7 @@ This article lists some of the major changes to docs for .NET 9. - [The history of C\#](../csharp/whats-new/csharp-version-history.md) - Add conceptual content for partial properties - [The lock statement - ensure exclusive access to a shared resource](../csharp/language-reference/statements/lock.md) - Add language reference for `lock` - [Type-testing operators and cast expressions - `is`, `as`, `typeof` and casts](../csharp/language-reference/operators/type-testing-and-cast.md) - Explain better conversion from collection expression -- [Use string interpolation to construct formatted strings](../csharp/tutorials/exploration/interpolated-strings-local.md) - Add conceptual content for partial properties +- [Use string interpolation to construct formatted strings](../csharp/tutorials/string-interpolation.md) - Add conceptual content for partial properties - [Using indexers (C# Programming Guide)](../csharp/programming-guide/indexers/using-indexers.md) - Add conceptual content for partial properties - [Using Properties (C# Programming Guide)](../csharp/programming-guide/classes-and-structs/using-properties.md) - Add conceptual content for partial properties - [where (generic type constraint) (C# Reference)](../csharp/language-reference/keywords/where-generic-type-constraint.md) - Add reference and conceptual content for `ref struct` allowed in interfaces From 94a08733d1533c142ff995b72a50d8b028857272 Mon Sep 17 00:00:00 2001 From: Adit Sheth Date: Mon, 5 May 2025 12:26:01 -0700 Subject: [PATCH 6/7] Fixed bug (#46014) Co-authored-by: Adit Sheth --- docs/csharp/misc/cs0449.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/csharp/misc/cs0449.md b/docs/csharp/misc/cs0449.md index 911dd934608da..2a9902e33c071 100644 --- a/docs/csharp/misc/cs0449.md +++ b/docs/csharp/misc/cs0449.md @@ -10,24 +10,25 @@ ms.assetid: 32c07a2c-4c48-4d07-b643-72422a6b9fac --- # Compiler Error CS0449 -The 'class' or 'struct' constraint must come before any other constraints - - The constraints on the type parameter of a generic type or method must occur in a specific order: `class` or `struct` must be first, if present, then any interface constraints, and finally any constructor constraints. This error is caused by the `class` or `struct` constraint not appearing first. To resolve this error, reorder the constraint clauses. - +The `'class'`, `'struct'`, `'unmanaged'`, `'notnull'`, and `'default'` constraints cannot be combined or duplicated, and must be specified first in the constraints list. + +The constraints on the type parameter of a generic type or method must occur in a specific order: `class` or `struct` must be first, if present, then any interface constraints, and finally any constructor constraints. This error is caused by the `class` or `struct` constraint not appearing first. To resolve this error, reorder the constraint clauses. + ## Example The following sample generates CS0449. - + ```csharp // CS0449.cs // compile with: /target:library -interface I {} +public interface I {} // Made public to avoid CS0703 + public class C4 { public void F1() where T : class, struct, I {} // CS0449 public void F2() where T : I, struct {} // CS0449 public void F3() where T : I, class {} // CS0449 - + // OK public void F4() where T : class {} public void F5() where T : struct {} From af9bcd92d8eb091497020b62e1f76ce4199bdbd1 Mon Sep 17 00:00:00 2001 From: Andy Gocke Date: Mon, 5 May 2025 15:40:19 -0700 Subject: [PATCH 7/7] Add struct instantiations to limitations section (#45987) --- docs/core/deploying/native-aot/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/core/deploying/native-aot/index.md b/docs/core/deploying/native-aot/index.md index e134a633eacfc..4cb03365c8d27 100644 --- a/docs/core/deploying/native-aot/index.md +++ b/docs/core/deploying/native-aot/index.md @@ -134,6 +134,7 @@ Native AOT apps have the following limitations: - Implies compilation into a single file, which has known [incompatibilities](../single-file/overview.md#api-incompatibility). - Apps include required runtime libraries (just like [self-contained apps](../index.md#publish-self-contained), increasing their size as compared to framework-dependent apps). - always use their interpreted form, which is slower than run-time generated compiled code. +- Generic parameters substituted with struct type arguments will have specialized code generated for each instantiation. In the dynamic runtime, many instantiations are generated on-demand. In Native AOT, all instantiations are pre-generated. This can have significant impact to the disk size of the application. Generic virtual methods and generic instance methods will also have an instantiation for every implementing or overriding type. - Not all the runtime libraries are fully annotated to be Native AOT compatible. That is, some warnings in the runtime libraries aren't actionable by end developers. - [Diagnostic support for debugging and profiling](./diagnostics.md) with some limitations. - Support for some ASP.NET Core features. For more information, see [ASP.NET Core support for Native AOT](/aspnet/core/fundamentals/native-aot/).