diff --git a/.ghal.rules.json b/.ghal.rules.json index 6f01143f70e1c..3b13733c2530b 100644 --- a/.ghal.rules.json +++ b/.ghal.rules.json @@ -10,7 +10,7 @@ "(?i)dotnet-fsharp$": ":books: Area - F# Guide", "(?i)dotnet-ml$": ":books: Area - ML.NET Guide", "(?i)dotnet$": ":books: Area - .NET Guide", - "(?i)dotnet-api$": ":books: Area - API Reference,:file_folder: Repo - dotnet-api-docs" + "(?i)dotnet-ml-api$": ":books: Area - API Reference,:file_folder: Repo - ml-api-docs" }, "contentsource": { "(?i).*master\/docs\/core\/tools.*": ":card_file_box: Technology - CLI", @@ -30,9 +30,7 @@ "(?i).*master\/docs\/standard\/modernize-with-azure-and-containers.*": ":card_file_box: Technology - .NET Architecture,:book: guide - Modernizing w/ Windows containers", "(?i).*master\/docs\/standard\/security.*": ":card_file_box: Technology - Security", "(?i).*master\/docs\/standard\/serverless-architecture.*": ":card_file_box: Technology - .NET Architecture,:book: guide - Serverless apps", - "(?i).*dotnet-api-docs\/blob\/master\/xml\/system\\.net.*": ":card_file_box: Technology - NCL", - "(?i).*dotnet-api-docs\/blob\/master\/xml\/system\\.windows\\.forms.*": ":card_file_box: Technology - WinForms", - "(?i).*dotnet-api-docs\/blob\/master\/xml\/system\\.security.*": ":card_file_box: Technology - Security" + "(?i).*master\/docs\/standard\/standard\/design-guidelines\/.*": ":book: guide - Framework Design Guidelines" } } } diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 5c68b80b95230..d32b95a33dc1f 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -2133,6 +2133,14 @@ "source_path": "docs/csharp/tutorials/microservices.md", "redirect_url": "/dotnet/core/docker/", "redirect_document_id": false + }, + { + "source_path":"docs/csharp/language-reference/keywords/true-operator.md", + "redirect_url":"/dotnet/csharp/language-reference/keywords/true-false-operators" + }, + { + "source_path":"docs/csharp/language-reference/keywords/false-operator.md", + "redirect_url":"/dotnet/csharp/language-reference/keywords/true-false-operators" } ] } \ No newline at end of file diff --git a/docs/core/additional-tools/dotnet-svcutil-guide.md b/docs/core/additional-tools/dotnet-svcutil-guide.md index be9ca752290ba..5636e22f2b823 100644 --- a/docs/core/additional-tools/dotnet-svcutil-guide.md +++ b/docs/core/additional-tools/dotnet-svcutil-guide.md @@ -2,7 +2,6 @@ title: WCF svcutil tool overview description: An overview of the Microsoft WCF dotnet-svcutil tool that adds functionality for .NET Core and ASP.NET Core projects, similar to the WCF svcutil tool for .NET Framework projects. author: mlacouture -ms.author: jralexander ms.date: 08/20/2018 ms.custom: "seodec18" --- diff --git a/docs/core/additional-tools/dotnet-svcutil.xmlserializer-guide.md b/docs/core/additional-tools/dotnet-svcutil.xmlserializer-guide.md index 3189fd3fbda56..5219131536b62 100644 --- a/docs/core/additional-tools/dotnet-svcutil.xmlserializer-guide.md +++ b/docs/core/additional-tools/dotnet-svcutil.xmlserializer-guide.md @@ -1,18 +1,27 @@ +--- +title: Using dotnet-svcutil.xmlserializer on .NET Core +description: Learn how you can use the `dotnet-svcutil.xmlserializer` NuGet package to pre-generate a serialization assembly for .NET Core projects. +author: huanwu +ms.date: 11/27/2018 +--- # Using dotnet-svcutil.xmlserializer on .NET Core -## Prerequisites +The `dotnet-svcutil.xmlserializer` NuGet package can pre-generate a serialization assembly for .NET Core projects. It pre-generates C# serialization code for the types in the client application that are used by the WCF Service Contract and that can be serialized by the XmlSerializer. This improves the startup performance of XML serialization when serializing or deserializing objects of those types. -The following is required for dotnet-svcutil.xmlserializer to work. +## Prerequisites -* [.NET Core 2.1 SDK or later](https://www.microsoft.com/net/download/dotnet-core/sdk-2.1.300) -* [.NET Core Runtime 2.1 or later](https://www.microsoft.com/net/download/dotnet-core/runtime-2.1.0) +* [.NET Core 2.1 SDK](https://www.microsoft.com/net/download) or later +* Your favorite code editor You can use the command `dotnet --info` to check which versions of .NET Core SDK and runtime you already have installed. -To use dotnet-svcutil.xmlserializer in a .NET Core console application: +## Getting started + +To use `dotnet-svcutil.xmlserializer` in a .NET Core console application: -1. Create a WCF Service named 'MyWCFService' using the default template 'WCF Service Application' in .NET Framework. Add ```[XmlSerializerFormat]``` attribute on the service method like the following - ```c# +1. Create a WCF Service named 'MyWCFService' using the default template 'WCF Service Application' in .NET Framework. Add `[XmlSerializerFormat]` attribute on the service method like the following: + + ```csharp [ServiceContract] public interface IService1 { @@ -21,34 +30,42 @@ To use dotnet-svcutil.xmlserializer in a .NET Core console application: string GetData(int value); } ``` -2. Create a .NET Core console application as WCF client application that targets at netcoreapp 2.1, e.g. create an app named 'MyWCFClient' with the command, - ``` + +2. Create a .NET Core console application as WCF client application that targets at .NET Core 2.1 or later versions. For example, create an app named 'MyWCFClient' with the following command: + + ```console dotnet new console --name MyWCFClient ``` - Make sure your csproj targets a netcoreapp 2.1. This is done using the following XML element in your .csproj file + + To ensure your project is targeting .NET Core 2.1 or later, inspect the `TargetFramework` XML element in your project file: + ```xml netcoreapp2.1 ``` -3. Add a package reference to System.ServiceModel.Http by running the following command: - - ```dotnet add package System.ServiceModel.Http -v 4.5.0``` + +3. Add a package reference to `System.ServiceModel.Http` by running the following command: + + ```console + dotnet add package System.ServiceModel.Http + ``` 4. Add the WCF Client code: + ```csharp using System.ServiceModel; - - class Program - { - static void Main(string[] args) + + class Program { - var myBinding = new BasicHttpBinding(); - var myEndpoint = new EndpointAddress("http://localhost:2561/Service1.svc"); //Fill your service url here - var myChannelFactory = new ChannelFactory(myBinding, myEndpoint); - IService1 client = myChannelFactory.CreateChannel(); - string s = client.GetData(1); - ((ICommunicationObject)client).Close(); + static void Main(string[] args) + { + var myBinding = new BasicHttpBinding(); + var myEndpoint = new EndpointAddress("http://localhost:2561/Service1.svc"); //Fill your service url here + var myChannelFactory = new ChannelFactory(myBinding, myEndpoint); + IService1 client = myChannelFactory.CreateChannel(); + string s = client.GetData(1); + ((ICommunicationObject)client).Close(); + } } - } [ServiceContract] public interface IService1 @@ -58,17 +75,21 @@ To use dotnet-svcutil.xmlserializer in a .NET Core console application: string GetData(int value); } ``` -5. Edit the .csproj file and add a reference to the dotnet-svcutil.xmlserializer package. For example: - i. Run command: `dotnet add package dotnet-svcutil.xmlserializer -v 1.0.0` +5. Add a reference to the `dotnet-svcutil.xmlserializer` package by running the following command: + + ```console + dotnet add package dotnet-svcutil.xmlserializer + ``` - ii. Add the following lines in MyWCFClient.csproj, + Running the command should add an entry to your project file similar to this: + ```xml ``` -6. Build the application by running `dotnet build`. If everything succeeds, an assembly named MyWCFClient.XmlSerializers.dll will be generated in the output folder. You will see warnings in the build output if the tool failed to generate the assembly. +6. Build the application by running `dotnet build`. If everything succeeds, an assembly named *MyWCFClient.XmlSerializers.dll* is generated in the output folder. If the tool failed to generate the assembly, you'll see warnings in the build output. -7. Start the WCF service e.g. by running http://localhost:2561/Service1.svc in the browser. Then start the client application, and it will automatically load and use the pre-generated serializers at runtime. +7. Start the WCF service by, for example, running `http://localhost:2561/Service1.svc` in the browser. Then start the client application, and it will automatically load and use the pre-generated serializers at runtime. \ No newline at end of file diff --git a/docs/core/additional-tools/index.md b/docs/core/additional-tools/index.md index c0628de7477a8..c27f3c478e354 100644 --- a/docs/core/additional-tools/index.md +++ b/docs/core/additional-tools/index.md @@ -2,9 +2,8 @@ title: .NET Core additional CLI tools description: An overview of the additional tools you can install that support and extend .NET Core functionality. author: mlacouture -ms.author: johalex -ms.date: 01/19/2018 -ms.custom: "seodec18" +ms.date: 11/27/2018 +ms.custom: "mvc, seodec18" --- # .NET Core additional tools overview @@ -16,12 +15,12 @@ The WCF (Windows Communication Foundation) Web Service Reference is a Visual Stu ## [WCF dotnet-svcutil tool](dotnet-svcutil-guide.md) -The WCF (Windows Communication Foundation) dotnet-svcutil tool is a .NET Core CLI tool that retrieves metadata from a web service on a network location or from a WSDL file, and generates a source file compatible with .NET Core, defining a WCF proxy class with methods that you can use to access the web service operations. +The WCF (Windows Communication Foundation) dotnet-svcutil tool is a .NET Core CLI tool that retrieves metadata from a web service on a network location or from a WSDL file, and generates a source file compatible with .NET Core, defining a WCF proxy class with methods that you can use to access the web service operations. The **dotnet-svcutil** tool is an alternative option to the [**WCF Web Service Reference**](wcf-web-service-reference-guide.md) Visual Studio connected service provider which first shipped with Visual Studio 2017 v15.5. The **dotnet-svcutil** tool as a .NET Core CLI tool, is available cross-platform on Linux, macOS, and Windows. ## [WCF dotnet-svcutil.xmlserializer tool](dotnet-svcutil.xmlserializer-guide.md) -On the .NET Framework, you can pre-generate a serialization assembly using the svcutil tool. The dotnet-svcutil.xmlserializer NuGet package provides similar functionality on .NET Core. It per-generates C# serialization code for the types in the client application that are used by the WCF Service Contract and that can be serialized by the . This improves the startup performance of XML serialization when serializing or deserializing objects of those types. +On the .NET Framework, you can pre-generate a serialization assembly using the svcutil tool. The dotnet-svcutil.xmlserializer NuGet package provides similar functionality on .NET Core. It pre-generates C# serialization code for the types in the client application that are used by the WCF Service Contract and that can be serialized by the . This improves the startup performance of XML serialization when serializing or deserializing objects of those types. ## [XML Serializer Generator](xml-serializer-generator.md) diff --git a/docs/core/additional-tools/wcf-web-service-reference-guide.md b/docs/core/additional-tools/wcf-web-service-reference-guide.md index 66ab1d8d7519d..65ba24a4fe6c9 100644 --- a/docs/core/additional-tools/wcf-web-service-reference-guide.md +++ b/docs/core/additional-tools/wcf-web-service-reference-guide.md @@ -2,7 +2,6 @@ title: Add WCF Web Service Reference description: An overview of the Microsoft WCF Web Service Reference Provider Tool that adds functionality for .NET Core and ASP.NET Core projects, similar to Add Service Reference for .NET Framework projects. author: mlacouture -ms.author: johalex ms.date: 04/19/2018 ms.custom: "mvc, seodec18" --- diff --git a/docs/core/additional-tools/xml-serializer-generator.md b/docs/core/additional-tools/xml-serializer-generator.md index 3cd5e00195bc2..e1fb2c655737b 100644 --- a/docs/core/additional-tools/xml-serializer-generator.md +++ b/docs/core/additional-tools/xml-serializer-generator.md @@ -2,7 +2,6 @@ title: "Microsoft XML Serializer Generator" description: An overview of the Microsoft XML Serializer Generator. Use the XML Serializer Generator to generate an XML serialization assembly for the types contained in your project. author: mlacouture -ms.author: johalex ms.date: 01/19/2017 ms.topic: tutorial ms.custom: "mvc, seodec18" @@ -16,7 +15,7 @@ This tutorial teaches you how to use the Microsoft XML Serializer Generator in a > * How to add a reference to the Microsoft.XmlSerializer.Generator package > * How to edit your MyApp.csproj to add dependencies > * How to add a class and an XmlSerializer -> * How to build and run the application +> * How to build and run the application Like the [Xml Serializer Generator (sgen.exe)](../../standard/serialization/xml-serializer-generator-tool-sgen-exe.md) for the .NET Framework, the [Microsoft.XmlSerializer.Generator NuGet package](https://www.nuget.org/packages/Microsoft.XmlSerializer.Generator) is the equivalent for .NET Core and .NET Standard projects. It creates an XML serialization assembly for types contained in an assembly to improve the startup performance of XML serialization when serializing or de-serializing objects of those types using . @@ -24,8 +23,8 @@ Like the [Xml Serializer Generator (sgen.exe)](../../standard/serialization/xml- To complete this tutorial: -* Install [.NET Core 2.1 SDK or later](https://www.microsoft.com/net/download). -* Install your favorite code editor, if you haven't already. +* [.NET Core 2.1 SDK](https://www.microsoft.com/net/download) or later +* Your favorite code editor. > [!TIP] > Need to install a code editor? Try [Visual Studio](https://aka.ms/vsdownload?utm_source=mscom&utm_campaign=msdocs)! @@ -47,11 +46,11 @@ dotnet new console Use the [`dotnet add package`](../tools//dotnet-add-package.md) command to add the reference in your project. Type: - - ```console - dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0 - ``` - + +```console +dotnet add package Microsoft.XmlSerializer.Generator -v 1.0.0 +``` + ### Verify changes to MyApp.csproj after adding the package Open your code editor and let's get started! We're still working from the *MyApp* directory we built the app in. @@ -65,17 +64,17 @@ After running the [`dotnet add package`](../tools//dotnet-add-package.md) comman ``` - + ### Add another ItemGroup section for .NET Core CLI Tool support - - Add the following lines after the `ItemGroup` section that we inspected: - + +Add the following lines after the `ItemGroup` section that we inspected: + ```xml ``` - + ### Add a class in the application Open *Program.cs* in your text editor. Add the class named *MyClass* in *Program.cs*. @@ -101,9 +100,10 @@ Still within the *MyApp* folder, run the application via [`dotnet run`](../tools Type the following command in your console window: - ```console - $ dotnet run - ``` +```console +$ dotnet run +``` + > [!NOTE] > [`dotnet run`](../tools/dotnet-run.md) calls [`dotnet build`](../tools/dotnet-build.md) to ensure that the build targets have been built, and then calls `dotnet ` to run the target application. @@ -112,18 +112,16 @@ Type the following command in your console window: If everything succeeds, an assembly named *MyApp.XmlSerializers.dll* is generated in the output folder. - - Congratulations! You have just: > [!div class="checklist"] > * Created a .NET Core app. > * Added a reference to the Microsoft.XmlSerializer.Generator package. > * Edited your MyApp.csproj to add dependencies. > * Added a class and an XmlSerializer. -> * Built and ran the application. +> * Built and ran the application. -## Related Resources +## Related resources * [Introducing XML Serialization](../../standard/serialization/introducing-xml-serialization.md) * [How to: Serialize Using XmlSerializer (C#)](../../csharp/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md) -* [How to: Serialize Using XmlSerializer (Visual Basic)](../../visual-basic/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md) +* [How to: Serialize Using XmlSerializer (Visual Basic)](../../visual-basic/programming-guide/concepts/linq/how-to-serialize-using-xmlserializer.md) \ No newline at end of file diff --git a/docs/core/testing/index.md b/docs/core/testing/index.md index 9d4a78e1ef09b..cc26951cf696e 100644 --- a/docs/core/testing/index.md +++ b/docs/core/testing/index.md @@ -1,11 +1,12 @@ --- title: Unit testing in .NET Core and .NET Standard -description: Unit testing in .NET Core and .NET Standard projects. +description: This article gives a brief overview of unit testing for .NET Core and .NET Standard projects. author: ardalis ms.author: wiwagn ms.date: 08/30/2017 ms.custom: "seodec18" --- + # Unit testing in .NET Core and .NET Standard .NET Core makes it easy to create unit tests. This article introduces unit tests and illustrates how they differ from other kinds of tests. The linked resources near the bottom of the page show you how to add a test project to your solution. After you set up your test project, you will be able to run your unit tests using the command line or Visual Studio. @@ -25,6 +26,8 @@ Also, keep in mind there are best practices for writing tests. For example, [Tes Try not to introduce dependencies on infrastructure when writing unit tests. These make the tests slow and brittle, and should be reserved for integration tests. You can avoid these dependencies in your application by following the [Explicit Dependencies Principle](https://deviq.com/explicit-dependencies-principle/) and using [Dependency Injection](/aspnet/core/fundamentals/dependency-injection). You can also keep your unit tests in a separate project from your integration tests. This ensures your unit test project doesn’t have references to or dependencies on infrastructure packages. +## Next steps + More information on unit testing in .NET Core projects: .NET Core unit test projects are supported for: diff --git a/docs/core/testing/selective-unit-tests.md b/docs/core/testing/selective-unit-tests.md index 94262e853fe57..7d455e41cab00 100644 --- a/docs/core/testing/selective-unit-tests.md +++ b/docs/core/testing/selective-unit-tests.md @@ -5,9 +5,10 @@ author: smadala ms.date: 03/22/2017 ms.custom: seodec18 --- + # Running selective unit tests -The following examples use `dotnet test`. If you're using `vstest.console.exe`, replace `--filter ` with `--testcasefilter:`. +With the `dotnet test` command in .NET Core, you can use a filter expression to run selective tests. This article demonstrates how to filter which test are run. The following examples use `dotnet test`. If you're using `vstest.console.exe`, replace `--filter ` with `--testcasefilter:`. ## MSTest diff --git a/docs/core/testing/unit-testing-best-practices.md b/docs/core/testing/unit-testing-best-practices.md index 63088bf1ebf4f..01bec7b431fa9 100644 --- a/docs/core/testing/unit-testing-best-practices.md +++ b/docs/core/testing/unit-testing-best-practices.md @@ -1,20 +1,20 @@ --- title: Best practices for writing unit tests -description: Learn best practices for writing unit tests that drive code quality and resilience +description: Learn best practices for writing unit tests that drive code quality and resilience for .NET Core and .NET Standard projects. author: jpreese ms.author: wiwagn ms.date: 07/28/2018 ms.custom: "seodec18" --- -# Unit testing best practices +# Unit testing best practices with .NET Core and .NET Standard -By [John Reese](http://reesespieces.io) with special thanks to [Roy Osherove](http://osherove.com/) - -There are numerous benefits to writing unit tests; they help with regression, provide documentation, and facilitate good design. However, hard to read and brittle unit tests can wreak havoc on your code base. +There are numerous benefits to writing unit tests; they help with regression, provide documentation, and facilitate good design. However, hard to read and brittle unit tests can wreak havoc on your code base. This article describes some best practices regarding unit test design for your .NET Core and .NET Standard projects. In this guide, you'll learn some best practices when writing unit tests to keep your tests resilient and easy to understand. +By [John Reese](http://reesespieces.io) with special thanks to [Roy Osherove](http://osherove.com/) + ## Why unit test? ### Less time performing functional tests diff --git a/docs/core/testing/unit-testing-fsharp-with-dotnet-test.md b/docs/core/testing/unit-testing-fsharp-with-dotnet-test.md index 8d4567c3628ae..20723d514bdbc 100644 --- a/docs/core/testing/unit-testing-fsharp-with-dotnet-test.md +++ b/docs/core/testing/unit-testing-fsharp-with-dotnet-test.md @@ -1,5 +1,5 @@ --- -title: Unit testing F# libraries in .NET Core using dotnet test and xUnit +title: Unit testing F# in .NET Core with dotnet test and xUnit description: Learn unit test concepts for F# in .NET Core through an interactive experience building a sample solution step-by-step using dotnet test and xUnit. author: billwagner ms.author: wiwagn diff --git a/docs/core/testing/unit-testing-fsharp-with-mstest.md b/docs/core/testing/unit-testing-fsharp-with-mstest.md index b365f8f4fd73c..0631924c69c47 100644 --- a/docs/core/testing/unit-testing-fsharp-with-mstest.md +++ b/docs/core/testing/unit-testing-fsharp-with-mstest.md @@ -1,5 +1,5 @@ --- -title: Unit testing F# libraries in .NET Core using dotnet test and MSTest +title: Unit testing F# in .NET Core with dotnet test and MSTest description: Learn unit test concepts for F# in .NET Core through an interactive experience building a sample solution step-by-step using dotnet test and MSTest. author: billwagner ms.author: wiwagn diff --git a/docs/core/testing/unit-testing-fsharp-with-nunit.md b/docs/core/testing/unit-testing-fsharp-with-nunit.md index fb6b038081920..a1b6ef8412c09 100644 --- a/docs/core/testing/unit-testing-fsharp-with-nunit.md +++ b/docs/core/testing/unit-testing-fsharp-with-nunit.md @@ -1,5 +1,5 @@ --- -title: Unit testing F# libraries in .NET Core using dotnet test and NUnit +title: Unit testing F# in .NET Core with dotnet test and NUnit description: Learn unit test concepts for F# in .NET Core through an interactive experience building a sample solution step-by-step using dotnet test and NUnit. author: rprouse ms.date: 10/04/2018 diff --git a/docs/core/testing/unit-testing-published-output.md b/docs/core/testing/unit-testing-published-output.md index 5509750283945..b604c947192d9 100644 --- a/docs/core/testing/unit-testing-published-output.md +++ b/docs/core/testing/unit-testing-published-output.md @@ -1,6 +1,6 @@ --- title: Test published output with dotnet vstest -description: Learn how to run tests on published output with the dotnet vstest command. +description: Learn how to run tests on published libraries, instead of on source code, with the dotnet vstest command. author: kendrahavens ms.author: kehavens ms.date: 10/18/2017 @@ -14,9 +14,11 @@ You can run tests on already published output by using the `dotnet vstest` comma dotnet vstest .dll ``` -where `` is the name of your published test project. +Where `` is the name of your published test project. -## Example of running tests on a published DLL +## Example + +The commands below demonstrate running tests on a published DLL. ``` dotnet new mstest -o MyProject.Tests diff --git a/docs/core/testing/unit-testing-visual-basic-with-dotnet-test.md b/docs/core/testing/unit-testing-visual-basic-with-dotnet-test.md index a591e96cfa002..267bd672faf48 100644 --- a/docs/core/testing/unit-testing-visual-basic-with-dotnet-test.md +++ b/docs/core/testing/unit-testing-visual-basic-with-dotnet-test.md @@ -1,5 +1,5 @@ --- -title: Unit testing with Visual Basic in .NET Core using dotnet test and xUnit +title: Unit testing Visual Basic in .NET Core with dotnet test and xUnit description: Learn unit test concepts in .NET Core through an interactive experience building a sample Visual Basic solution step-by-step using dotnet test and xUnit. author: billwagner ms.author: wiwagn diff --git a/docs/core/testing/unit-testing-visual-basic-with-mstest.md b/docs/core/testing/unit-testing-visual-basic-with-mstest.md index 7872214392f43..2fbca0c79be0c 100644 --- a/docs/core/testing/unit-testing-visual-basic-with-mstest.md +++ b/docs/core/testing/unit-testing-visual-basic-with-mstest.md @@ -1,5 +1,5 @@ --- -title: Unit testing Visual Basic in .NET Core using dotnet test and MSTest +title: Unit testing Visual Basic in .NET Core with dotnet test and MSTest description: Learn unit test concepts in .NET Core through an interactive experience building a sample Visual Basic solution step-by-step using MSTest. author: billwagner ms.author: wiwagn diff --git a/docs/core/testing/unit-testing-visual-basic-with-nunit.md b/docs/core/testing/unit-testing-visual-basic-with-nunit.md index eb129c35c9a0e..12f5d660aad9f 100644 --- a/docs/core/testing/unit-testing-visual-basic-with-nunit.md +++ b/docs/core/testing/unit-testing-visual-basic-with-nunit.md @@ -1,5 +1,5 @@ --- -title: Unit testing Visual Basic in .NET Core using dotnet test and NUnit +title: Unit testing Visual Basic in .NET Core with dotnet test and NUnit description: Learn unit test concepts in .NET Core through an interactive experience building a sample Visual Basic solution step-by-step using NUnit. author: rprouse ms.date: 10/04/2018 diff --git a/docs/core/tutorials/testing-with-cli.md b/docs/core/tutorials/testing-with-cli.md index 50b7531c00702..568c3de1283bb 100644 --- a/docs/core/tutorials/testing-with-cli.md +++ b/docs/core/tutorials/testing-with-cli.md @@ -97,19 +97,19 @@ Optional exercise: You can add a new pet type, such as a `Bird`, by extending th The `NewTypes` project is in place, and you've organized it by keeping the pets-related types in a folder. Next, create your test project and start writing tests with the [xUnit](https://xunit.github.io/) test framework. Unit testing allows you to automatically check the behavior of your pet types to confirm that they're operating properly. -Create a *test* folder with a *NewTypesTests* folder within it. At a command prompt from the *NewTypesTests* folder, execute `dotnet new xunit`. This produces two files: *NewTypesTests.csproj* and *UnitTest1.cs*. +Navigate back to the *src* folder and create a *test* folder with a *NewTypesTests* folder within it. At a command prompt from the *NewTypesTests* folder, execute `dotnet new xunit`. This produces two files: *NewTypesTests.csproj* and *UnitTest1.cs*. The test project cannot currently test the types in `NewTypes` and requires a project reference to the `NewTypes` project. To add a project reference, use the [`dotnet add reference`](../tools/dotnet-add-reference.md) command: ``` -dotnet add reference ../../src/NewTypes/NewTypes.csproj +dotnet add reference ../../NewTypes/NewTypes.csproj ``` -You also have the option of manually adding the project reference by adding an `` node to the *NewTypesTests.csproj* file: +Or, you also have the option of manually adding the project reference by adding an `` node to the *NewTypesTests.csproj* file: ```xml - + ``` diff --git a/docs/core/windows-prerequisites.md b/docs/core/windows-prerequisites.md index 3b71f9188975d..4bd9787e411ad 100644 --- a/docs/core/windows-prerequisites.md +++ b/docs/core/windows-prerequisites.md @@ -1,7 +1,7 @@ --- title: Prerequisites for .NET Core on Windows description: Learn what dependencies you need on your Windows machine to develop and run .NET Core applications. -ms.date: 12/05/2018 +ms.date: 12/10/2018 --- # Prerequisites for .NET Core on Windows @@ -31,7 +31,6 @@ The following articles have a complete list of .NET Core supported operating sys * [.NET Core 2.2](https://github.com/dotnet/core/blob/master/release-notes/2.2/2.2-supported-os.md) * [.NET Core 2.1](https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md) -* [.NET Core 1.1](https://github.com/dotnet/core/blob/master/release-notes/1.1/1.1-supported-os.md) * [.NET Core 1.0](https://github.com/dotnet/core/blob/master/release-notes/1.0/1.0-supported-os.md) For download links and more information, see [.NET downloads](https://www.microsoft.com/net/download) to download the latest version or [.NET downloads archive](https://dotnet.microsoft.com/download/archives#dotnet-core) for older versions. diff --git a/docs/csharp/language-reference/keywords/abstract.md b/docs/csharp/language-reference/keywords/abstract.md index 0cbe3ceda6919..edc6590aa6874 100644 --- a/docs/csharp/language-reference/keywords/abstract.md +++ b/docs/csharp/language-reference/keywords/abstract.md @@ -1,5 +1,7 @@ --- -title: "abstract (C# Reference)" +title: "abstract - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "abstract" diff --git a/docs/csharp/language-reference/keywords/access-keywords.md b/docs/csharp/language-reference/keywords/access-keywords.md index f6cbd819d0672..4b2a171e6887d 100644 --- a/docs/csharp/language-reference/keywords/access-keywords.md +++ b/docs/csharp/language-reference/keywords/access-keywords.md @@ -1,5 +1,7 @@ --- -title: "Access Keywords (C# Reference)" +title: "Access Keywords - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "access keywords [C#]" diff --git a/docs/csharp/language-reference/keywords/access-modifiers.md b/docs/csharp/language-reference/keywords/access-modifiers.md index 9ba9c5318b671..1529e404e4231 100644 --- a/docs/csharp/language-reference/keywords/access-modifiers.md +++ b/docs/csharp/language-reference/keywords/access-modifiers.md @@ -1,5 +1,7 @@ --- -title: "Access Modifiers (C# Reference)" +title: "Access Modifiers - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "access modifiers [C#]" diff --git a/docs/csharp/language-reference/keywords/accessibility-domain.md b/docs/csharp/language-reference/keywords/accessibility-domain.md index 2daa7d00c8d9e..82f555f66632d 100644 --- a/docs/csharp/language-reference/keywords/accessibility-domain.md +++ b/docs/csharp/language-reference/keywords/accessibility-domain.md @@ -1,5 +1,7 @@ --- -title: "Accessibility Domain (C# Reference)" +title: "Accessibility Domain - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "accessibility domain [C#]" diff --git a/docs/csharp/language-reference/keywords/accessibility-levels.md b/docs/csharp/language-reference/keywords/accessibility-levels.md index 4a8d6d9289b11..716ebf25cb161 100644 --- a/docs/csharp/language-reference/keywords/accessibility-levels.md +++ b/docs/csharp/language-reference/keywords/accessibility-levels.md @@ -1,5 +1,7 @@ --- -title: "Accessibility Levels (C# Reference)" +title: "Accessibility Levels - C# Reference" +ms.custom: seodec18 + ms.date: 12/06/2017 helpviewer_keywords: - "access modifiers [C#], accessibility levels" diff --git a/docs/csharp/language-reference/keywords/add.md b/docs/csharp/language-reference/keywords/add.md index 476f49b1341af..eba3b84e7175b 100644 --- a/docs/csharp/language-reference/keywords/add.md +++ b/docs/csharp/language-reference/keywords/add.md @@ -1,5 +1,7 @@ --- -title: "add (C# Reference)" +title: "add - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "add_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/as.md b/docs/csharp/language-reference/keywords/as.md index 1504d8cab0757..4abc22ab1c871 100644 --- a/docs/csharp/language-reference/keywords/as.md +++ b/docs/csharp/language-reference/keywords/as.md @@ -1,5 +1,7 @@ --- -title: "as (C# Reference)" +title: "as - C# Reference" +ms.custom: seodec18 + ms.date: 10/11/2018 f1_keywords: - "as_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/ascending.md b/docs/csharp/language-reference/keywords/ascending.md index f16c3a7dac18e..e6daec115d2bc 100644 --- a/docs/csharp/language-reference/keywords/ascending.md +++ b/docs/csharp/language-reference/keywords/ascending.md @@ -1,5 +1,7 @@ --- -title: "ascending (C# Reference)" +title: "ascending - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "ascending" diff --git a/docs/csharp/language-reference/keywords/async.md b/docs/csharp/language-reference/keywords/async.md index a0bb9554a04d7..d401f3247df31 100644 --- a/docs/csharp/language-reference/keywords/async.md +++ b/docs/csharp/language-reference/keywords/async.md @@ -1,5 +1,7 @@ --- -title: "async (C# Reference)" +title: "async - C# Reference" +ms.custom: seodec18 + ms.date: 05/22/2017 f1_keywords: - "async_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/await.md b/docs/csharp/language-reference/keywords/await.md index 66f47d262b50f..16ebe28b9278f 100644 --- a/docs/csharp/language-reference/keywords/await.md +++ b/docs/csharp/language-reference/keywords/await.md @@ -1,5 +1,7 @@ --- -title: "await (C# Reference)" +title: "await - C# Reference" +ms.custom: seodec18 + ms.date: 05/22/2017 f1_keywords: - "await_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/base.md b/docs/csharp/language-reference/keywords/base.md index 14523caef8aae..ba322c110d26b 100644 --- a/docs/csharp/language-reference/keywords/base.md +++ b/docs/csharp/language-reference/keywords/base.md @@ -1,5 +1,7 @@ --- -title: "base keyword (C# Reference)" +title: "base keyword - C# Reference" +ms.custom: seodec18 + description: Learn about the base keyword, which is used to access members of the base class from within a derived class in C#. ms.date: 07/20/2015 f1_keywords: diff --git a/docs/csharp/language-reference/keywords/bool.md b/docs/csharp/language-reference/keywords/bool.md index ee45335d461c2..083894ed6dc6a 100644 --- a/docs/csharp/language-reference/keywords/bool.md +++ b/docs/csharp/language-reference/keywords/bool.md @@ -1,5 +1,7 @@ --- -title: "bool keyword (C# Reference)" +title: "bool keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "bool_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/break.md b/docs/csharp/language-reference/keywords/break.md index 99ac92e1e5793..3ea23063e2cd3 100644 --- a/docs/csharp/language-reference/keywords/break.md +++ b/docs/csharp/language-reference/keywords/break.md @@ -1,5 +1,7 @@ --- -title: "break statement (C# Reference)" +title: "break statement - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "break" diff --git a/docs/csharp/language-reference/keywords/built-in-types-table.md b/docs/csharp/language-reference/keywords/built-in-types-table.md index 711c592fce471..47c4e18ec84f6 100644 --- a/docs/csharp/language-reference/keywords/built-in-types-table.md +++ b/docs/csharp/language-reference/keywords/built-in-types-table.md @@ -1,5 +1,7 @@ --- -title: "Built-in types table (C# Reference)" +title: "Built-in types table - C# Reference" +ms.custom: seodec18 + description: "Keywords for built-in C# types" ms.date: 08/17/2018 helpviewer_keywords: diff --git a/docs/csharp/language-reference/keywords/by.md b/docs/csharp/language-reference/keywords/by.md index de0c170801cb0..e17c1aa24c185 100644 --- a/docs/csharp/language-reference/keywords/by.md +++ b/docs/csharp/language-reference/keywords/by.md @@ -1,5 +1,7 @@ --- -title: "by contextual keyword (C# Reference)" +title: "by contextual keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "by" diff --git a/docs/csharp/language-reference/keywords/byte.md b/docs/csharp/language-reference/keywords/byte.md index 76482ce918471..bb191568b859d 100644 --- a/docs/csharp/language-reference/keywords/byte.md +++ b/docs/csharp/language-reference/keywords/byte.md @@ -1,5 +1,7 @@ --- -title: "byte (C# Reference)" +title: "byte - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "byte" diff --git a/docs/csharp/language-reference/keywords/char.md b/docs/csharp/language-reference/keywords/char.md index 2b85dc54e7ff1..a5298a0f996c0 100644 --- a/docs/csharp/language-reference/keywords/char.md +++ b/docs/csharp/language-reference/keywords/char.md @@ -1,5 +1,7 @@ --- -title: "char keyword (C# Reference)" +title: "char keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "char" diff --git a/docs/csharp/language-reference/keywords/checked-and-unchecked.md b/docs/csharp/language-reference/keywords/checked-and-unchecked.md index 2647301e08a48..4a2ba0c1a4760 100644 --- a/docs/csharp/language-reference/keywords/checked-and-unchecked.md +++ b/docs/csharp/language-reference/keywords/checked-and-unchecked.md @@ -1,5 +1,7 @@ --- -title: "Checked and Unchecked (C# Reference)" +title: "Checked and Unchecked - C# Reference" +ms.custom: seodec18 + ms.date: 05/15/2018 helpviewer_keywords: - "operators [C#], checked and unchecked" diff --git a/docs/csharp/language-reference/keywords/checked.md b/docs/csharp/language-reference/keywords/checked.md index 38b5e86a8248d..29945f117e0ca 100644 --- a/docs/csharp/language-reference/keywords/checked.md +++ b/docs/csharp/language-reference/keywords/checked.md @@ -1,5 +1,7 @@ --- -title: "checked keyword (C# Reference)" +title: "checked keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "checked_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/class.md b/docs/csharp/language-reference/keywords/class.md index 0cc18b8029435..9ac067f9e1fc3 100644 --- a/docs/csharp/language-reference/keywords/class.md +++ b/docs/csharp/language-reference/keywords/class.md @@ -1,5 +1,7 @@ --- -title: "class keyword (C# Reference)" +title: "class keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/18/2017 f1_keywords: - "class_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/const.md b/docs/csharp/language-reference/keywords/const.md index 98ef34a49995a..68215e9c3b5fb 100644 --- a/docs/csharp/language-reference/keywords/const.md +++ b/docs/csharp/language-reference/keywords/const.md @@ -1,5 +1,7 @@ --- -title: "const keyword (C# Reference)" +title: "const keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "const_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/contextual-keywords.md b/docs/csharp/language-reference/keywords/contextual-keywords.md index 4b78f1f1d0b41..109888b5570db 100644 --- a/docs/csharp/language-reference/keywords/contextual-keywords.md +++ b/docs/csharp/language-reference/keywords/contextual-keywords.md @@ -1,5 +1,7 @@ --- -title: "Contextual Keywords (C# Reference)" +title: "Contextual Keywords - C# Reference" +ms.custom: seodec18 + ms.date: 03/07/2017 helpviewer_keywords: - "contextual keywords [C#]" diff --git a/docs/csharp/language-reference/keywords/continue.md b/docs/csharp/language-reference/keywords/continue.md index 7176903716baf..7a86751d33d15 100644 --- a/docs/csharp/language-reference/keywords/continue.md +++ b/docs/csharp/language-reference/keywords/continue.md @@ -1,5 +1,7 @@ --- -title: "continue statement (C# Reference)" +title: "continue statement - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "continue_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/conversion-keywords.md b/docs/csharp/language-reference/keywords/conversion-keywords.md index 765685015624a..fed5e421bfea7 100644 --- a/docs/csharp/language-reference/keywords/conversion-keywords.md +++ b/docs/csharp/language-reference/keywords/conversion-keywords.md @@ -1,5 +1,7 @@ --- -title: "Conversion Keywords (C# Reference)" +title: "Conversion Keywords - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "conversions [C#], keywords" diff --git a/docs/csharp/language-reference/keywords/decimal.md b/docs/csharp/language-reference/keywords/decimal.md index 2cc69c3c916e1..5064e837ade40 100644 --- a/docs/csharp/language-reference/keywords/decimal.md +++ b/docs/csharp/language-reference/keywords/decimal.md @@ -1,5 +1,7 @@ --- -title: "decimal keyword (C# Reference)" +title: "decimal keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "decimal_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/default-values-table.md b/docs/csharp/language-reference/keywords/default-values-table.md index a41ca79bbc446..74b9dcdf6d9fc 100644 --- a/docs/csharp/language-reference/keywords/default-values-table.md +++ b/docs/csharp/language-reference/keywords/default-values-table.md @@ -1,5 +1,7 @@ --- -title: "Default values table (C# Reference)" +title: "Default values table - C# Reference" +ms.custom: seodec18 + description: Learn what are the default values of C# value types. ms.date: 08/23/2018 helpviewer_keywords: diff --git a/docs/csharp/language-reference/keywords/default.md b/docs/csharp/language-reference/keywords/default.md index 74756dfa91be7..0294c9b05e4d6 100644 --- a/docs/csharp/language-reference/keywords/default.md +++ b/docs/csharp/language-reference/keywords/default.md @@ -1,5 +1,7 @@ --- -title: "default (C# Reference)" +title: "default - C# Reference" +ms.custom: seodec18 + ms.date: 08/04/2017 f1_keywords: - "default" diff --git a/docs/csharp/language-reference/keywords/delegate.md b/docs/csharp/language-reference/keywords/delegate.md index 58f130ee0f80f..4401016ae3cab 100644 --- a/docs/csharp/language-reference/keywords/delegate.md +++ b/docs/csharp/language-reference/keywords/delegate.md @@ -1,5 +1,7 @@ --- -title: "delegate (C# Reference)" +title: "delegate - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "delegate_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/descending.md b/docs/csharp/language-reference/keywords/descending.md index cc4fde1fab322..d0cb59e9e4644 100644 --- a/docs/csharp/language-reference/keywords/descending.md +++ b/docs/csharp/language-reference/keywords/descending.md @@ -1,5 +1,7 @@ --- -title: "descending contextual keyword (C# Reference)" +title: "descending contextual keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "descending" diff --git a/docs/csharp/language-reference/keywords/do.md b/docs/csharp/language-reference/keywords/do.md index cdc56fceb8dfc..cf7bcd1cbb727 100644 --- a/docs/csharp/language-reference/keywords/do.md +++ b/docs/csharp/language-reference/keywords/do.md @@ -1,5 +1,7 @@ --- -title: "do (C# Reference)" +title: "do - C# Reference" +ms.custom: seodec18 + ms.date: 05/28/2018 f1_keywords: - "do_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/double.md b/docs/csharp/language-reference/keywords/double.md index 7377318d02219..8947b95a4cc16 100644 --- a/docs/csharp/language-reference/keywords/double.md +++ b/docs/csharp/language-reference/keywords/double.md @@ -1,5 +1,7 @@ --- -title: "double keyword (C# Reference)" +title: "double keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "double" diff --git a/docs/csharp/language-reference/keywords/dynamic.md b/docs/csharp/language-reference/keywords/dynamic.md index c2abb1cde54c6..5fedc66dddf0d 100644 --- a/docs/csharp/language-reference/keywords/dynamic.md +++ b/docs/csharp/language-reference/keywords/dynamic.md @@ -1,5 +1,7 @@ --- -title: "dynamic (C# Reference)" +title: "dynamic - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "dynamic_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/enum.md b/docs/csharp/language-reference/keywords/enum.md index 62e065af0bd9b..7297cbca1c4b8 100644 --- a/docs/csharp/language-reference/keywords/enum.md +++ b/docs/csharp/language-reference/keywords/enum.md @@ -1,5 +1,7 @@ --- -title: "enum keyword (C# Reference)" +title: "enum keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "enum" diff --git a/docs/csharp/language-reference/keywords/equals.md b/docs/csharp/language-reference/keywords/equals.md index 61264b1dbd565..997b995ebb21b 100644 --- a/docs/csharp/language-reference/keywords/equals.md +++ b/docs/csharp/language-reference/keywords/equals.md @@ -1,5 +1,7 @@ --- -title: "equals contextual keyword (C# Reference)" +title: "equals contextual keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "equals_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/event.md b/docs/csharp/language-reference/keywords/event.md index 2dd0ea370d0b2..5be2d00d0a842 100644 --- a/docs/csharp/language-reference/keywords/event.md +++ b/docs/csharp/language-reference/keywords/event.md @@ -1,5 +1,7 @@ --- -title: "event (C# Reference)" +title: "event - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "event" diff --git a/docs/csharp/language-reference/keywords/exception-handling-statements.md b/docs/csharp/language-reference/keywords/exception-handling-statements.md index a457e4400e4f2..c57d00148d4c2 100644 --- a/docs/csharp/language-reference/keywords/exception-handling-statements.md +++ b/docs/csharp/language-reference/keywords/exception-handling-statements.md @@ -1,5 +1,7 @@ --- -title: "Exception Handling Statements (C# Reference)" +title: "Exception Handling Statements - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "keywords [C#], exception handling" diff --git a/docs/csharp/language-reference/keywords/explicit-numeric-conversions-table.md b/docs/csharp/language-reference/keywords/explicit-numeric-conversions-table.md index d09f7c276f61a..ad9b778863445 100644 --- a/docs/csharp/language-reference/keywords/explicit-numeric-conversions-table.md +++ b/docs/csharp/language-reference/keywords/explicit-numeric-conversions-table.md @@ -1,5 +1,7 @@ --- -title: "Explicit numeric conversions table (C# Reference)" +title: "Explicit numeric conversions table - C# Reference" +ms.custom: seodec18 + ms.date: 09/06/2018 helpviewer_keywords: - "conversions [C#], explicit numeric" diff --git a/docs/csharp/language-reference/keywords/explicit.md b/docs/csharp/language-reference/keywords/explicit.md index 8e06c47af39aa..78b881077cb5a 100644 --- a/docs/csharp/language-reference/keywords/explicit.md +++ b/docs/csharp/language-reference/keywords/explicit.md @@ -1,5 +1,7 @@ --- -title: "explicit keyword (C# Reference)" +title: "explicit keyword - C# Reference" +ms.custom: seodec18 + ms.date: 08/24/2018 f1_keywords: - "explicit_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/extern-alias.md b/docs/csharp/language-reference/keywords/extern-alias.md index 5beeddb6040bb..e45ece650ad99 100644 --- a/docs/csharp/language-reference/keywords/extern-alias.md +++ b/docs/csharp/language-reference/keywords/extern-alias.md @@ -1,5 +1,7 @@ --- -title: "extern alias (C# Reference)" +title: "extern alias - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "alias_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/extern.md b/docs/csharp/language-reference/keywords/extern.md index 59b6a9306994c..c57d29def5052 100644 --- a/docs/csharp/language-reference/keywords/extern.md +++ b/docs/csharp/language-reference/keywords/extern.md @@ -1,5 +1,7 @@ --- -title: "extern modifier (C# Reference)" +title: "extern modifier - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "extern_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/false-literal.md b/docs/csharp/language-reference/keywords/false-literal.md index 99590d9aced1c..7d15679b97935 100644 --- a/docs/csharp/language-reference/keywords/false-literal.md +++ b/docs/csharp/language-reference/keywords/false-literal.md @@ -1,5 +1,7 @@ --- -title: "false literal (C# Reference)" +title: "false literal - C# Reference" +ms.custom: seodec18 + ms.date: 12/03/2018 helpviewer_keywords: - "false literal keyword [C#]" @@ -16,6 +18,6 @@ Represents the [bool](bool.md) value `false`: - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [false operator](false-operator.md) - [true](true.md) +- [true and false operators](true-false-operators.md) - [?: Operator](../operators/conditional-operator.md) diff --git a/docs/csharp/language-reference/keywords/false-operator.md b/docs/csharp/language-reference/keywords/false-operator.md deleted file mode 100644 index 05a9ae8b89f88..0000000000000 --- a/docs/csharp/language-reference/keywords/false-operator.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "false operator (C# Reference)" -ms.date: 12/03/2018 -helpviewer_keywords: - - "false operator keyword [C#]" -ms.assetid: 81a888fd-011e-4589-b242-6c261fea505e ---- -# false operator (C# Reference) - -Returns the [bool](bool.md) value `true` to indicate that an operand is definitely false. If a type defines the `false` operator, it must also define the [true operator](true-operator.md). The `true` and `false` operators are not guaranteed to complement each other. - -> [!TIP] -> Use the `bool?` type, if you need to support the three-valued logic, for example, when you work with databases that support a three-valued logical type. For more information, see [The bool? type](../../programming-guide/nullable-types/using-nullable-types.md#the-bool-type) section of the [Using nullable types](../../programming-guide/nullable-types/using-nullable-types.md) article. - -If a type with the defined `false` operator [overloads](operator.md) the [logical AND operator](../operators/and-operator.md) `&` in a certain way, the [conditional logical AND operator](../operators/conditional-and-operator.md) `&&`, which is short-circuiting, can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). - -The following example presents the type that defines both `true` and `false` operators. Moreover, it overloads the logical AND operator `&` in such a way that the operator `&&` also can be evaluated for the operands of that type. - -[!code-csharp-interactive[true and false operators example](~/samples/snippets/csharp/keywords/TrueFalseOperatorsExample.cs)] - -Notice the short-circuiting behavior of the `&&` operator. When the `GetFuelLaunchStatus` method returns `LaunchStatus.Red`, the second operand of the `&&` operator is not evaluated. That is because `LaunchStatus.Red` is definitely false. Then the result of the logical AND doesn't depend on the value of the second operand. The output of the example is as follows: - -```console -Getting fuel launch status... -Wait! -``` - -Also notice that the conditional expression in the [conditional operator `?:`](../operators/conditional-operator.md) is of the `LaunchStatus` type. That is possible, because `LaunchStatus` defines the `true` operator. For more information, see the [Boolean expressions](~/_csharplang/spec/expressions.md#boolean-expressions) section of the [C# language specification](../language-specification/index.md). - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [C# Operators](../operators/index.md) -- [`false` literal](false-literal.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/false.md b/docs/csharp/language-reference/keywords/false.md index 4654c6c4891f2..8059fc57604b0 100644 --- a/docs/csharp/language-reference/keywords/false.md +++ b/docs/csharp/language-reference/keywords/false.md @@ -1,5 +1,7 @@ --- -title: "false (C# Reference)" +title: "false - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "false_CSharpKeyword" @@ -12,7 +14,7 @@ ms.assetid: a11aa532-efe2-442b-9fcc-8fdb33b8c8b4 Used as an overloaded operator or as a literal: -- [false operator](false-operator.md) +- [false operator](true-false-operators.md) - [false literal](false-literal.md) ## See also diff --git a/docs/csharp/language-reference/keywords/fixed-statement.md b/docs/csharp/language-reference/keywords/fixed-statement.md index 71ec37ea84d41..68337fb85598e 100644 --- a/docs/csharp/language-reference/keywords/fixed-statement.md +++ b/docs/csharp/language-reference/keywords/fixed-statement.md @@ -1,5 +1,7 @@ --- -title: "fixed Statement (C# Reference)" +title: "fixed Statement - C# Reference" +ms.custom: seodec18 + ms.date: 05/10/2018 f1_keywords: - "fixed_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/float.md b/docs/csharp/language-reference/keywords/float.md index 14e936e140626..c3599af44e34d 100644 --- a/docs/csharp/language-reference/keywords/float.md +++ b/docs/csharp/language-reference/keywords/float.md @@ -1,5 +1,7 @@ --- -title: "float keyword (C# Reference)" +title: "float keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "float" diff --git a/docs/csharp/language-reference/keywords/floating-point-types-table.md b/docs/csharp/language-reference/keywords/floating-point-types-table.md index ba107c1a7743d..09283a874f365 100644 --- a/docs/csharp/language-reference/keywords/floating-point-types-table.md +++ b/docs/csharp/language-reference/keywords/floating-point-types-table.md @@ -1,5 +1,7 @@ --- -title: "Floating-point types table (C# Reference)" +title: "Floating-point types table - C# Reference" +ms.custom: seodec18 + description: "Overview of the built-in C# floating-point types" ms.date: 08/20/2018 helpviewer_keywords: diff --git a/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md b/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md index bcb2b8611b421..07e385a9c4317 100644 --- a/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md +++ b/docs/csharp/language-reference/keywords/formatting-numeric-results-table.md @@ -1,5 +1,7 @@ --- -title: "Formatting numeric results table (C# Reference)" +title: "Formatting numeric results table - C# Reference" +ms.custom: seodec18 + description: "Learn about C# standard numeric format strings" ms.date: 09/20/2018 helpviewer_keywords: diff --git a/docs/csharp/language-reference/keywords/from-clause.md b/docs/csharp/language-reference/keywords/from-clause.md index bfc8f27853214..438b19386c6ca 100644 --- a/docs/csharp/language-reference/keywords/from-clause.md +++ b/docs/csharp/language-reference/keywords/from-clause.md @@ -1,5 +1,7 @@ --- -title: "from clause (C# Reference)" +title: "from clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "from_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/get.md b/docs/csharp/language-reference/keywords/get.md index 8ea452476924a..f53fa9c2903b0 100644 --- a/docs/csharp/language-reference/keywords/get.md +++ b/docs/csharp/language-reference/keywords/get.md @@ -1,5 +1,7 @@ --- -title: "get (C# Reference)" +title: "get - C# Reference" +ms.custom: seodec18 + ms.date: 03/10/2017 f1_keywords: - "get_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/global.md b/docs/csharp/language-reference/keywords/global.md index 947a5f6def4ec..50fa30cfce45e 100644 --- a/docs/csharp/language-reference/keywords/global.md +++ b/docs/csharp/language-reference/keywords/global.md @@ -1,5 +1,7 @@ --- -title: "global contextual keyword (C# Reference)" +title: "global contextual keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "global" diff --git a/docs/csharp/language-reference/keywords/goto.md b/docs/csharp/language-reference/keywords/goto.md index 68a4889774061..740b7279e0e06 100644 --- a/docs/csharp/language-reference/keywords/goto.md +++ b/docs/csharp/language-reference/keywords/goto.md @@ -1,5 +1,7 @@ --- -title: "goto statement (C# Reference)" +title: "goto statement - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "goto_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/group-clause.md b/docs/csharp/language-reference/keywords/group-clause.md index 2165e55b14121..5e917a2d5cf7b 100644 --- a/docs/csharp/language-reference/keywords/group-clause.md +++ b/docs/csharp/language-reference/keywords/group-clause.md @@ -1,5 +1,7 @@ --- -title: "group clause (C# Reference)" +title: "group clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "group" diff --git a/docs/csharp/language-reference/keywords/if-else.md b/docs/csharp/language-reference/keywords/if-else.md index 1b9fe242e052f..ef3dd748e70e6 100644 --- a/docs/csharp/language-reference/keywords/if-else.md +++ b/docs/csharp/language-reference/keywords/if-else.md @@ -1,5 +1,7 @@ --- -title: "if-else (C# Reference)" +title: "if-else - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "if_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/implicit-numeric-conversions-table.md b/docs/csharp/language-reference/keywords/implicit-numeric-conversions-table.md index bacfc24532997..3cdbf8dfa8556 100644 --- a/docs/csharp/language-reference/keywords/implicit-numeric-conversions-table.md +++ b/docs/csharp/language-reference/keywords/implicit-numeric-conversions-table.md @@ -1,5 +1,7 @@ --- -title: "Implicit numeric conversions table (C# Reference)" +title: "Implicit numeric conversions table - C# Reference" +ms.custom: seodec18 + ms.date: 09/05/2018 helpviewer_keywords: - "conversions [C#], implicit numeric" diff --git a/docs/csharp/language-reference/keywords/implicit.md b/docs/csharp/language-reference/keywords/implicit.md index dae4c3e0de838..442861d90e609 100644 --- a/docs/csharp/language-reference/keywords/implicit.md +++ b/docs/csharp/language-reference/keywords/implicit.md @@ -1,5 +1,7 @@ --- -title: "implicit (C# Reference)" +title: "implicit - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "implicit" diff --git a/docs/csharp/language-reference/keywords/in-generic-modifier.md b/docs/csharp/language-reference/keywords/in-generic-modifier.md index 203f28ed706ae..d9e5ca8940901 100644 --- a/docs/csharp/language-reference/keywords/in-generic-modifier.md +++ b/docs/csharp/language-reference/keywords/in-generic-modifier.md @@ -1,5 +1,7 @@ --- -title: "in (Generic Modifier) (C# Reference)" +title: "in (Generic Modifier) - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "contravariance, in keyword [C#]" diff --git a/docs/csharp/language-reference/keywords/in-parameter-modifier.md b/docs/csharp/language-reference/keywords/in-parameter-modifier.md index d08fc0d0e8075..05592579edbaf 100644 --- a/docs/csharp/language-reference/keywords/in-parameter-modifier.md +++ b/docs/csharp/language-reference/keywords/in-parameter-modifier.md @@ -1,5 +1,7 @@ --- -title: "in parameter modifier (C# Reference)" +title: "in parameter modifier - C# Reference" +ms.custom: seodec18 + ms.date: 03/06/2018 helpviewer_keywords: - "parameters [C#], in" diff --git a/docs/csharp/language-reference/keywords/in.md b/docs/csharp/language-reference/keywords/in.md index 9678cf0406b45..e7b4dd9b791f9 100644 --- a/docs/csharp/language-reference/keywords/in.md +++ b/docs/csharp/language-reference/keywords/in.md @@ -1,5 +1,7 @@ --- -title: "in (C# Reference)" +title: "in - C# Reference" +ms.custom: seodec18 + ms.date: 02/06/2018 f1_keywords: - "in" diff --git a/docs/csharp/language-reference/keywords/int.md b/docs/csharp/language-reference/keywords/int.md index 89eed28f5b2be..4120f7bad68ac 100644 --- a/docs/csharp/language-reference/keywords/int.md +++ b/docs/csharp/language-reference/keywords/int.md @@ -1,5 +1,7 @@ --- -title: "int (C# Reference)" +title: "int - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "int_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/integral-types-table.md b/docs/csharp/language-reference/keywords/integral-types-table.md index 7777da920ac05..259f147bf0204 100644 --- a/docs/csharp/language-reference/keywords/integral-types-table.md +++ b/docs/csharp/language-reference/keywords/integral-types-table.md @@ -1,5 +1,7 @@ --- -title: "Integral types table (C# Reference)" +title: "Integral types table - C# Reference" +ms.custom: seodec18 + description: "Overview of the built-in C# integral types" ms.date: 08/20/2018 helpviewer_keywords: diff --git a/docs/csharp/language-reference/keywords/interface.md b/docs/csharp/language-reference/keywords/interface.md index effad53f3aafa..0de4675392d88 100644 --- a/docs/csharp/language-reference/keywords/interface.md +++ b/docs/csharp/language-reference/keywords/interface.md @@ -1,5 +1,7 @@ --- -title: "interface (C# Reference)" +title: "interface - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "interface_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/internal.md b/docs/csharp/language-reference/keywords/internal.md index ef158108f0e45..22b3aa61ecd95 100644 --- a/docs/csharp/language-reference/keywords/internal.md +++ b/docs/csharp/language-reference/keywords/internal.md @@ -1,5 +1,7 @@ --- -title: "internal (C# Reference)" +title: "internal - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "internal_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/into.md b/docs/csharp/language-reference/keywords/into.md index 90cc9afffb0b9..f4822b30ab586 100644 --- a/docs/csharp/language-reference/keywords/into.md +++ b/docs/csharp/language-reference/keywords/into.md @@ -1,5 +1,7 @@ --- -title: "into (C# Reference)" +title: "into - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "into_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/is.md b/docs/csharp/language-reference/keywords/is.md index ea4bc6c22df49..704b212f3ac3f 100644 --- a/docs/csharp/language-reference/keywords/is.md +++ b/docs/csharp/language-reference/keywords/is.md @@ -1,5 +1,7 @@ --- -title: "is (C# Reference)" +title: "is - C# Reference" +ms.custom: seodec18 + ms.date: 02/17/2017 f1_keywords: - "is_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/iteration-statements.md b/docs/csharp/language-reference/keywords/iteration-statements.md index 49dc316e961ec..8fb2c3c677a4c 100644 --- a/docs/csharp/language-reference/keywords/iteration-statements.md +++ b/docs/csharp/language-reference/keywords/iteration-statements.md @@ -1,5 +1,7 @@ --- -title: "Iteration Statements (C# Reference)" +title: "Iteration Statements - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "iteration statements [C#]" diff --git a/docs/csharp/language-reference/keywords/join-clause.md b/docs/csharp/language-reference/keywords/join-clause.md index 60aec1cf166ae..49ec170e6d895 100644 --- a/docs/csharp/language-reference/keywords/join-clause.md +++ b/docs/csharp/language-reference/keywords/join-clause.md @@ -1,5 +1,7 @@ --- -title: "join clause (C# Reference)" +title: "join clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "join" diff --git a/docs/csharp/language-reference/keywords/jump-statements.md b/docs/csharp/language-reference/keywords/jump-statements.md index ffef3ba494e8e..00ac77789a36d 100644 --- a/docs/csharp/language-reference/keywords/jump-statements.md +++ b/docs/csharp/language-reference/keywords/jump-statements.md @@ -1,5 +1,7 @@ --- -title: "Jump Statements (C# Reference)" +title: "Jump Statements - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "jump statements [C#]" diff --git a/docs/csharp/language-reference/keywords/let-clause.md b/docs/csharp/language-reference/keywords/let-clause.md index 8c08058eaa09d..d099f80e84fb3 100644 --- a/docs/csharp/language-reference/keywords/let-clause.md +++ b/docs/csharp/language-reference/keywords/let-clause.md @@ -1,5 +1,7 @@ --- -title: "let clause (C# Reference)" +title: "let clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "let_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/literal-keywords.md b/docs/csharp/language-reference/keywords/literal-keywords.md index d6d95427755b6..33ac8a74c8280 100644 --- a/docs/csharp/language-reference/keywords/literal-keywords.md +++ b/docs/csharp/language-reference/keywords/literal-keywords.md @@ -1,5 +1,7 @@ --- -title: "Literal Keywords (C# Reference)" +title: "Literal Keywords - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "literal keywords [C#]" diff --git a/docs/csharp/language-reference/keywords/lock-statement.md b/docs/csharp/language-reference/keywords/lock-statement.md index 7b0f8dba7c84d..6efb82f93e4b5 100644 --- a/docs/csharp/language-reference/keywords/lock-statement.md +++ b/docs/csharp/language-reference/keywords/lock-statement.md @@ -1,5 +1,7 @@ --- -title: "lock statement (C# Reference)" +title: "lock statement - C# Reference" +ms.custom: seodec18 + description: "Use the C# lock statement to synchronize thread access to a shared resource" ms.date: 10/01/2018 f1_keywords: diff --git a/docs/csharp/language-reference/keywords/long.md b/docs/csharp/language-reference/keywords/long.md index 442406b9e3a6a..63beebbbafdbb 100644 --- a/docs/csharp/language-reference/keywords/long.md +++ b/docs/csharp/language-reference/keywords/long.md @@ -1,5 +1,7 @@ --- -title: "long (C# Reference)" +title: "long - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "long_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/method-parameters.md b/docs/csharp/language-reference/keywords/method-parameters.md index 89dde71a6287b..ae5e6f8966a6a 100644 --- a/docs/csharp/language-reference/keywords/method-parameters.md +++ b/docs/csharp/language-reference/keywords/method-parameters.md @@ -1,5 +1,7 @@ --- -title: "Method Parameters (C# Reference)" +title: "Method Parameters - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "methods [C#], parameters" diff --git a/docs/csharp/language-reference/keywords/modifiers.md b/docs/csharp/language-reference/keywords/modifiers.md index 2ed67fc00a666..4c41546c013ce 100644 --- a/docs/csharp/language-reference/keywords/modifiers.md +++ b/docs/csharp/language-reference/keywords/modifiers.md @@ -1,5 +1,7 @@ --- -title: "Modifiers (C# Reference)" +title: "Modifiers - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "keywords [C#], modifiers" diff --git a/docs/csharp/language-reference/keywords/nameof.md b/docs/csharp/language-reference/keywords/nameof.md index fc9826bb56b62..7bac1818c79d8 100644 --- a/docs/csharp/language-reference/keywords/nameof.md +++ b/docs/csharp/language-reference/keywords/nameof.md @@ -1,5 +1,7 @@ --- -title: "nameof (C# Reference)" +title: "nameof - C# Reference" +ms.custom: seodec18 + ms.date: 06/16/2017 f1_keywords: - "nameof_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/namespace-keywords.md b/docs/csharp/language-reference/keywords/namespace-keywords.md index 291079809a380..4797e716a5437 100644 --- a/docs/csharp/language-reference/keywords/namespace-keywords.md +++ b/docs/csharp/language-reference/keywords/namespace-keywords.md @@ -1,5 +1,7 @@ --- -title: "Namespace Keywords (C# Reference)" +title: "Namespace Keywords - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "namespaces [C#], keywords" diff --git a/docs/csharp/language-reference/keywords/namespace.md b/docs/csharp/language-reference/keywords/namespace.md index 87f6da5df956e..fa4b8a14ca9c4 100644 --- a/docs/csharp/language-reference/keywords/namespace.md +++ b/docs/csharp/language-reference/keywords/namespace.md @@ -1,5 +1,7 @@ --- -title: "namespace keyword (C# Reference)" +title: "namespace keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "namespace_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/new-constraint.md b/docs/csharp/language-reference/keywords/new-constraint.md index 71d0882bd5554..b9ca66928c76f 100644 --- a/docs/csharp/language-reference/keywords/new-constraint.md +++ b/docs/csharp/language-reference/keywords/new-constraint.md @@ -1,5 +1,7 @@ --- -title: "new constraint (C# Reference)" +title: "new constraint - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "new constraint keyword [C#]" diff --git a/docs/csharp/language-reference/keywords/new-modifier.md b/docs/csharp/language-reference/keywords/new-modifier.md index f124ed18d5ead..8ab31d6ce11ab 100644 --- a/docs/csharp/language-reference/keywords/new-modifier.md +++ b/docs/csharp/language-reference/keywords/new-modifier.md @@ -1,5 +1,7 @@ --- -title: "new modifier (C# Reference)" +title: "new modifier - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "new modifier keyword [C#]" diff --git a/docs/csharp/language-reference/keywords/new-operator.md b/docs/csharp/language-reference/keywords/new-operator.md index 3506bceb6404c..d27d010fe0ee8 100644 --- a/docs/csharp/language-reference/keywords/new-operator.md +++ b/docs/csharp/language-reference/keywords/new-operator.md @@ -1,5 +1,7 @@ --- -title: "new operator (C# Reference)" +title: "new operator - C# Reference" +ms.custom: seodec18 + ms.date: 03/15/2018 helpviewer_keywords: - "new operator keyword [C#]" diff --git a/docs/csharp/language-reference/keywords/new.md b/docs/csharp/language-reference/keywords/new.md index d60ed02f15885..a2041e034f624 100644 --- a/docs/csharp/language-reference/keywords/new.md +++ b/docs/csharp/language-reference/keywords/new.md @@ -1,5 +1,7 @@ --- -title: "new (C# Reference)" +title: "new - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "new_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/null.md b/docs/csharp/language-reference/keywords/null.md index ebafa03569bd8..91a688b9b25ee 100644 --- a/docs/csharp/language-reference/keywords/null.md +++ b/docs/csharp/language-reference/keywords/null.md @@ -1,5 +1,7 @@ --- -title: "null keyword (C# Reference)" +title: "null keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "null" diff --git a/docs/csharp/language-reference/keywords/object.md b/docs/csharp/language-reference/keywords/object.md index 6566b47809b22..13040dc7f7984 100644 --- a/docs/csharp/language-reference/keywords/object.md +++ b/docs/csharp/language-reference/keywords/object.md @@ -1,5 +1,7 @@ --- -title: "object (C# Reference)" +title: "object - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "object_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/on.md b/docs/csharp/language-reference/keywords/on.md index 8583525836734..21654fde125b4 100644 --- a/docs/csharp/language-reference/keywords/on.md +++ b/docs/csharp/language-reference/keywords/on.md @@ -1,5 +1,7 @@ --- -title: "on keyword (C# Reference)" +title: "on keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "on_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/operator-keywords.md b/docs/csharp/language-reference/keywords/operator-keywords.md index bbdbac0d920d1..5f6899816e5bb 100644 --- a/docs/csharp/language-reference/keywords/operator-keywords.md +++ b/docs/csharp/language-reference/keywords/operator-keywords.md @@ -1,57 +1,60 @@ --- -title: "Operator Keywords (C# Reference)" -ms.date: 07/20/2015 +title: "Operator Keywords - C# Reference" +ms.custom: seodec18 + +ms.date: 12/10/2018 helpviewer_keywords: - "keywords [C#], operators" - "operators [C#], keywords" ms.assetid: f745c81f-f8d8-4673-86a1-0f3a85cc63c3 --- # Operator Keywords (C# Reference) -Used to perform miscellaneous actions such as creating objects, checking the run-time type of an object, obtaining the size of a type, and other actions. This section introduces the following keywords: - -- [as](../../../csharp/language-reference/keywords/as.md) Converts an object to a compatible type. - -- [await](../../../csharp/language-reference/keywords/await.md) Suspends an async method until an awaited task is completed. - -- [is](../../../csharp/language-reference/keywords/is.md) Checks the run-time type of an object. - -- [new](../../../csharp/language-reference/keywords/new.md) - - - [new Operator](../../../csharp/language-reference/keywords/new-operator.md) Creates objects. - - - [new Modifier](../../../csharp/language-reference/keywords/new-modifier.md) Hides an inherited member. - - - [new Constraint](../../../csharp/language-reference/keywords/new-constraint.md) Qualifies a type parameter. - -- [nameof](nameof.md) Obtains the simple (unqualified) string name of a variable, type, or member. - -- [sizeof](../../../csharp/language-reference/keywords/sizeof.md) Obtains the size of a type. - -- [typeof](../../../csharp/language-reference/keywords/typeof.md) Obtains the **System.Type** object for a type. - -- [true](../../../csharp/language-reference/keywords/true.md) - - - [true Operator](../../../csharp/language-reference/keywords/true-operator.md) Returns the boolean value true to indicate true and returns false otherwise. - - - [true Literal](../../../csharp/language-reference/keywords/true-literal.md) Represents the boolean value true. - -- [false](../../../csharp/language-reference/keywords/false.md) - - - [false Operator](../../../csharp/language-reference/keywords/false-operator.md) Returns the Boolean value true to indicate false and returns false otherwise. - - - [false Literal](../../../csharp/language-reference/keywords/false-literal.md) Represents the boolean value false. - -- [stackalloc](../../../csharp/language-reference/keywords/stackalloc.md) Allocates a block of memory on the stack. - - The following keywords, which can be used as operators and as statements, are covered in the [Statements](../../../csharp/language-reference/keywords/statement-keywords.md) section: - -- [checked](../../../csharp/language-reference/keywords/checked.md) Specifies checked context. - -- [unchecked](../../../csharp/language-reference/keywords/unchecked.md) Specifies unchecked context. - -## See Also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [C# Operators](../../../csharp/language-reference/operators/index.md) + +Used to perform miscellaneous actions such as creating objects, checking the run-time type of an object, obtaining the size of a type, and other actions. This section introduces the following keywords: + +- [as](as.md) Converts an object to a compatible type. + +- [await](await.md) Suspends an [async](async.md) method until an awaited task is completed. + +- [is](is.md) Checks the run-time type of an object, or (starting with C# 7.0) tests an expression against a pattern. + +- [new](new.md) + + - [new Operator](new-operator.md) Creates objects. + + - [new Modifier](new-modifier.md) Hides an inherited member. + + - [new Constraint](new-constraint.md) Qualifies a type parameter. + +- [nameof](nameof.md) Obtains the simple (unqualified) string name of a variable, type, or member. + +- [sizeof](sizeof.md) Obtains the size of an unmanaged type. + +- [typeof](typeof.md) Obtains the object for a type. + +- [true](true.md) + + - [true Operator](true-false-operators.md) Returns the [bool](bool.md) value `true` to indicate that the operand is definitely true. + + - [true Literal](true-literal.md) Represents the [bool](bool.md) value `true`. + +- [false](false.md) + + - [false Operator](true-false-operators.md) Returns the [bool](bool.md) value `true` to indicate that the operand is definitely false. + + - [false Literal](false-literal.md) Represents the [bool](bool.md) value `false`. + +- [stackalloc](stackalloc.md) Allocates a block of memory on the stack. + +The following keywords, which can be used as operators and as statements, are covered in the [Statements](statement-keywords.md) section: + +- [checked](checked.md) Specifies checked context. + +- [unchecked](unchecked.md) Specifies unchecked context. + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [C# Operators](../operators/index.md) diff --git a/docs/csharp/language-reference/keywords/operator.md b/docs/csharp/language-reference/keywords/operator.md index ec7300b219d76..644b2d26f219b 100644 --- a/docs/csharp/language-reference/keywords/operator.md +++ b/docs/csharp/language-reference/keywords/operator.md @@ -1,5 +1,7 @@ --- -title: "operator keyword (C# Reference)" +title: "operator keyword - C# Reference" +ms.custom: seodec18 + description: "Learn how to overload a built-in C# operator" ms.date: 08/27/2018 f1_keywords: diff --git a/docs/csharp/language-reference/keywords/orderby-clause.md b/docs/csharp/language-reference/keywords/orderby-clause.md index a90df91afbcea..deeed863b8d6c 100644 --- a/docs/csharp/language-reference/keywords/orderby-clause.md +++ b/docs/csharp/language-reference/keywords/orderby-clause.md @@ -1,5 +1,7 @@ --- -title: "orderby clause (C# Reference)" +title: "orderby clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "orderby" diff --git a/docs/csharp/language-reference/keywords/out-generic-modifier.md b/docs/csharp/language-reference/keywords/out-generic-modifier.md index 8e60c4d75d23f..792688695c2ae 100644 --- a/docs/csharp/language-reference/keywords/out-generic-modifier.md +++ b/docs/csharp/language-reference/keywords/out-generic-modifier.md @@ -1,5 +1,7 @@ --- -title: "out keyword (generic modifier) (C# Reference)" +title: "out keyword (generic modifier) - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "covariance, out keyword [C#]" diff --git a/docs/csharp/language-reference/keywords/out-parameter-modifier.md b/docs/csharp/language-reference/keywords/out-parameter-modifier.md index 454e32e1c6899..ee139143100c3 100644 --- a/docs/csharp/language-reference/keywords/out-parameter-modifier.md +++ b/docs/csharp/language-reference/keywords/out-parameter-modifier.md @@ -1,5 +1,7 @@ --- -title: "out parameter modifier (C# Reference)" +title: "out parameter modifier - C# Reference" +ms.custom: seodec18 + ms.date: 03/06/2018 helpviewer_keywords: - "parameters [C#], out" diff --git a/docs/csharp/language-reference/keywords/out.md b/docs/csharp/language-reference/keywords/out.md index 396e72da04fab..db7edbd5caf99 100644 --- a/docs/csharp/language-reference/keywords/out.md +++ b/docs/csharp/language-reference/keywords/out.md @@ -1,5 +1,7 @@ --- -title: "out keyword (C# Reference)" +title: "out keyword - C# Reference" +ms.custom: seodec18 + ms.date: 03/01/2017 f1_keywords: - "out_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/override.md b/docs/csharp/language-reference/keywords/override.md index 2121e79b3fd46..77cab634f275b 100644 --- a/docs/csharp/language-reference/keywords/override.md +++ b/docs/csharp/language-reference/keywords/override.md @@ -1,5 +1,7 @@ --- -title: "override modifier (C# Reference)" +title: "override modifier - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "override" diff --git a/docs/csharp/language-reference/keywords/params.md b/docs/csharp/language-reference/keywords/params.md index 8c7fecfa4dd1e..5dad8dc6b7ecb 100644 --- a/docs/csharp/language-reference/keywords/params.md +++ b/docs/csharp/language-reference/keywords/params.md @@ -1,5 +1,7 @@ --- -title: "params keyword (C# Reference)" +title: "params keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "params_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/partial-method.md b/docs/csharp/language-reference/keywords/partial-method.md index 29f2a5c66a42f..3140db9a6e014 100644 --- a/docs/csharp/language-reference/keywords/partial-method.md +++ b/docs/csharp/language-reference/keywords/partial-method.md @@ -1,5 +1,7 @@ --- -title: "partial method (C# Reference)" +title: "partial method - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "partialmethod_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/partial-type.md b/docs/csharp/language-reference/keywords/partial-type.md index 49fda1ddb1cbc..dab77ad9ec9ca 100644 --- a/docs/csharp/language-reference/keywords/partial-type.md +++ b/docs/csharp/language-reference/keywords/partial-type.md @@ -1,5 +1,7 @@ --- -title: "partial type (C# Reference)" +title: "partial type - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "partialtype" diff --git a/docs/csharp/language-reference/keywords/private-protected.md b/docs/csharp/language-reference/keywords/private-protected.md index 0f91d18625c16..1261c6dc70cee 100644 --- a/docs/csharp/language-reference/keywords/private-protected.md +++ b/docs/csharp/language-reference/keywords/private-protected.md @@ -1,5 +1,7 @@ --- -title: "private protected (C# Reference)" +title: "private protected - C# Reference" +ms.custom: seodec18 + ms.date: 11/15/2017 author: "sputier" --- diff --git a/docs/csharp/language-reference/keywords/private.md b/docs/csharp/language-reference/keywords/private.md index 15f71bc8ac45b..acdf398f1ad1b 100644 --- a/docs/csharp/language-reference/keywords/private.md +++ b/docs/csharp/language-reference/keywords/private.md @@ -1,5 +1,7 @@ --- -title: "private keyword (C# Reference)" +title: "private keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "private_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/protected-internal.md b/docs/csharp/language-reference/keywords/protected-internal.md index 22fbe75c7b1d2..b74b04dc57da9 100644 --- a/docs/csharp/language-reference/keywords/protected-internal.md +++ b/docs/csharp/language-reference/keywords/protected-internal.md @@ -1,5 +1,7 @@ --- -title: "protected internal (C# Reference)" +title: "protected internal - C# Reference" +ms.custom: seodec18 + ms.date: 11/15/2017 author: "sputier" --- diff --git a/docs/csharp/language-reference/keywords/protected.md b/docs/csharp/language-reference/keywords/protected.md index c5f1f612be134..d28fdec8b11fc 100644 --- a/docs/csharp/language-reference/keywords/protected.md +++ b/docs/csharp/language-reference/keywords/protected.md @@ -1,5 +1,7 @@ --- -title: "protected keyword (C# Reference)" +title: "protected keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "protected" diff --git a/docs/csharp/language-reference/keywords/public.md b/docs/csharp/language-reference/keywords/public.md index 621254bb03cde..b01797f7e1bdd 100644 --- a/docs/csharp/language-reference/keywords/public.md +++ b/docs/csharp/language-reference/keywords/public.md @@ -1,5 +1,7 @@ --- -title: "public keyword (C# Reference)" +title: "public keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "public" diff --git a/docs/csharp/language-reference/keywords/query-keywords.md b/docs/csharp/language-reference/keywords/query-keywords.md index 77c89c6851a8c..ad4e247614949 100644 --- a/docs/csharp/language-reference/keywords/query-keywords.md +++ b/docs/csharp/language-reference/keywords/query-keywords.md @@ -1,5 +1,7 @@ --- -title: "Query keywords (C# Reference)" +title: "Query keywords - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "query keywords [C#]" diff --git a/docs/csharp/language-reference/keywords/readonly.md b/docs/csharp/language-reference/keywords/readonly.md index 53ea0f38ec487..e0e59dc90d5fc 100644 --- a/docs/csharp/language-reference/keywords/readonly.md +++ b/docs/csharp/language-reference/keywords/readonly.md @@ -1,5 +1,7 @@ --- -title: "readonly keyword (C# Reference)" +title: "readonly keyword - C# Reference" +ms.custom: seodec18 + ms.date: 06/21/2018 f1_keywords: - "readonly_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/ref.md b/docs/csharp/language-reference/keywords/ref.md index a7d353e01f8b4..e1a5df938b7f5 100644 --- a/docs/csharp/language-reference/keywords/ref.md +++ b/docs/csharp/language-reference/keywords/ref.md @@ -1,5 +1,7 @@ --- -title: "ref keyword (C# Reference)" +title: "ref keyword - C# Reference" +ms.custom: seodec18 + ms.date: 10/24/2018 f1_keywords: - "ref_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/reference-tables-for-types.md b/docs/csharp/language-reference/keywords/reference-tables-for-types.md index 85fc81b74545b..7311b3ff0a20d 100644 --- a/docs/csharp/language-reference/keywords/reference-tables-for-types.md +++ b/docs/csharp/language-reference/keywords/reference-tables-for-types.md @@ -1,5 +1,7 @@ --- -title: "Reference tables for types (C# Reference)" +title: "Reference tables for types - C# Reference" +ms.custom: seodec18 + ms.date: 09/21/2018 f1_keywords: - "cs.referencetables" diff --git a/docs/csharp/language-reference/keywords/reference-types.md b/docs/csharp/language-reference/keywords/reference-types.md index 6ceb07c738976..5903cc4df8497 100644 --- a/docs/csharp/language-reference/keywords/reference-types.md +++ b/docs/csharp/language-reference/keywords/reference-types.md @@ -1,5 +1,7 @@ --- -title: "Reference types (C# Reference)" +title: "Reference types - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "cs.referencetypes" diff --git a/docs/csharp/language-reference/keywords/remove.md b/docs/csharp/language-reference/keywords/remove.md index cf82b84a3c738..83a32d31a608a 100644 --- a/docs/csharp/language-reference/keywords/remove.md +++ b/docs/csharp/language-reference/keywords/remove.md @@ -1,5 +1,7 @@ --- -title: "remove contextual keyword (C# Reference)" +title: "remove contextual keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "remove_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md b/docs/csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md index 985bddea22e05..f8e9223d2ac25 100644 --- a/docs/csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md +++ b/docs/csharp/language-reference/keywords/restrictions-on-using-accessibility-levels.md @@ -1,5 +1,7 @@ --- -title: "Restrictions on using accessibility levels (C# Reference)" +title: "Restrictions on using accessibility levels - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "access modifiers [C#], accessibility level restrictions" diff --git a/docs/csharp/language-reference/keywords/return.md b/docs/csharp/language-reference/keywords/return.md index 29bacfff7bfea..44f986fa4361a 100644 --- a/docs/csharp/language-reference/keywords/return.md +++ b/docs/csharp/language-reference/keywords/return.md @@ -1,5 +1,7 @@ --- -title: "return statement (C# Reference)" +title: "return statement - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "return_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/sbyte.md b/docs/csharp/language-reference/keywords/sbyte.md index e6f625f64df5b..b4f79883669d0 100644 --- a/docs/csharp/language-reference/keywords/sbyte.md +++ b/docs/csharp/language-reference/keywords/sbyte.md @@ -1,5 +1,7 @@ --- -title: "sbyte (C# Reference)" +title: "sbyte - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "sbyte_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/sealed.md b/docs/csharp/language-reference/keywords/sealed.md index 428f0a690eaa0..675396248e9da 100644 --- a/docs/csharp/language-reference/keywords/sealed.md +++ b/docs/csharp/language-reference/keywords/sealed.md @@ -1,5 +1,7 @@ --- -title: "sealed modifier (C# Reference)" +title: "sealed modifier - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "sealed" diff --git a/docs/csharp/language-reference/keywords/select-clause.md b/docs/csharp/language-reference/keywords/select-clause.md index cc615e5da0bcb..0c6ab264f961c 100644 --- a/docs/csharp/language-reference/keywords/select-clause.md +++ b/docs/csharp/language-reference/keywords/select-clause.md @@ -1,5 +1,7 @@ --- -title: "select clause (C# Reference)" +title: "select clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "select_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/selection-statements.md b/docs/csharp/language-reference/keywords/selection-statements.md index dfc7b4e16a8f6..96cedc76a0717 100644 --- a/docs/csharp/language-reference/keywords/selection-statements.md +++ b/docs/csharp/language-reference/keywords/selection-statements.md @@ -1,5 +1,7 @@ --- -title: "Selection statements (C# Reference)" +title: "Selection statements - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "statements [C#], selection" diff --git a/docs/csharp/language-reference/keywords/set.md b/docs/csharp/language-reference/keywords/set.md index d7213d5465f62..5b39f727ef9eb 100644 --- a/docs/csharp/language-reference/keywords/set.md +++ b/docs/csharp/language-reference/keywords/set.md @@ -1,5 +1,7 @@ --- -title: "set keyword (C# Reference)" +title: "set keyword - C# Reference" +ms.custom: seodec18 + ms.date: 03/10/2017 f1_keywords: - "set" diff --git a/docs/csharp/language-reference/keywords/short.md b/docs/csharp/language-reference/keywords/short.md index 4dc80bf82a134..99672894b1a62 100644 --- a/docs/csharp/language-reference/keywords/short.md +++ b/docs/csharp/language-reference/keywords/short.md @@ -1,5 +1,7 @@ --- -title: "short (C# Reference)" +title: "short - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "short" diff --git a/docs/csharp/language-reference/keywords/sizeof.md b/docs/csharp/language-reference/keywords/sizeof.md index 1ab99645d505f..e284c6aef1014 100644 --- a/docs/csharp/language-reference/keywords/sizeof.md +++ b/docs/csharp/language-reference/keywords/sizeof.md @@ -1,5 +1,7 @@ --- -title: "sizeof (C# Reference)" +title: "sizeof - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "sizeof_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/stackalloc.md b/docs/csharp/language-reference/keywords/stackalloc.md index 1a592aed27901..d657f403daf99 100644 --- a/docs/csharp/language-reference/keywords/stackalloc.md +++ b/docs/csharp/language-reference/keywords/stackalloc.md @@ -1,5 +1,7 @@ --- -title: "stackalloc keyword (C# Reference)" +title: "stackalloc keyword - C# Reference" +ms.custom: seodec18 + ms.date: 04/12/2018 f1_keywords: - "stackalloc_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/statement-keywords.md b/docs/csharp/language-reference/keywords/statement-keywords.md index 351aadf88aa44..2ddd749db2891 100644 --- a/docs/csharp/language-reference/keywords/statement-keywords.md +++ b/docs/csharp/language-reference/keywords/statement-keywords.md @@ -1,5 +1,7 @@ --- -title: "Statement keywords (C# Reference)" +title: "Statement keywords - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "keywords [C#], statements" diff --git a/docs/csharp/language-reference/keywords/static.md b/docs/csharp/language-reference/keywords/static.md index ca1129a55f743..dda908b81f6ae 100644 --- a/docs/csharp/language-reference/keywords/static.md +++ b/docs/csharp/language-reference/keywords/static.md @@ -1,5 +1,7 @@ --- -title: "static modifier (C# Reference)" +title: "static modifier - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "static" diff --git a/docs/csharp/language-reference/keywords/string.md b/docs/csharp/language-reference/keywords/string.md index 043fea3b8bde3..ea6edbe19c926 100644 --- a/docs/csharp/language-reference/keywords/string.md +++ b/docs/csharp/language-reference/keywords/string.md @@ -1,5 +1,7 @@ --- -title: "string (C# Reference)" +title: "string - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "string" diff --git a/docs/csharp/language-reference/keywords/struct.md b/docs/csharp/language-reference/keywords/struct.md index 344c2ad2b157b..c2abe75c8fd99 100644 --- a/docs/csharp/language-reference/keywords/struct.md +++ b/docs/csharp/language-reference/keywords/struct.md @@ -1,5 +1,7 @@ --- -title: "struct (C# Reference)" +title: "struct - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "struct_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/this.md b/docs/csharp/language-reference/keywords/this.md index 22fe6c35a3370..441ef4ce213b6 100644 --- a/docs/csharp/language-reference/keywords/this.md +++ b/docs/csharp/language-reference/keywords/this.md @@ -1,5 +1,7 @@ --- -title: "this keyword (C# Reference)" +title: "this keyword - C# Reference" +ms.custom: seodec18 + description: this keyword (C# Reference) ms.date: 07/20/2015 f1_keywords: diff --git a/docs/csharp/language-reference/keywords/throw.md b/docs/csharp/language-reference/keywords/throw.md index 9125d39bd1051..1812325b2b5cd 100644 --- a/docs/csharp/language-reference/keywords/throw.md +++ b/docs/csharp/language-reference/keywords/throw.md @@ -1,5 +1,7 @@ --- -title: "throw (C# Reference)" +title: "throw - C# Reference" +ms.custom: seodec18 + ms.date: 03/02/2015 f1_keywords: - "throw" diff --git a/docs/csharp/language-reference/keywords/toc.md b/docs/csharp/language-reference/keywords/toc.md index 5a059f1027098..b537f9531a8a9 100644 --- a/docs/csharp/language-reference/keywords/toc.md +++ b/docs/csharp/language-reference/keywords/toc.md @@ -106,10 +106,10 @@ ### [sizeof](sizeof.md) ### [typeof](typeof.md) ### [true](true.md) -#### [true Operator](true-operator.md) +#### [true Operator](true-false-operators.md) #### [true Literal](true-literal.md) ### [false](false.md) -#### [false Operator](false-operator.md) +#### [false Operator](true-false-operators.md) #### [false Literal](false-literal.md) ### [stackalloc](stackalloc.md) ### [nameof](nameof.md) diff --git a/docs/csharp/language-reference/keywords/true-false-operators.md b/docs/csharp/language-reference/keywords/true-false-operators.md new file mode 100644 index 0000000000000..565d388a3882d --- /dev/null +++ b/docs/csharp/language-reference/keywords/true-false-operators.md @@ -0,0 +1,40 @@ +--- +title: "true and false operators - C# Reference" +ms.custom: seodec18 + +ms.date: 12/10/2018 +helpviewer_keywords: + - "false operator [C#]" + - "true operator [C#]" +ms.assetid: 81a888fd-011e-4589-b242-6c261fea505e +--- +# true and false operators (C# Reference) + +The `true` operator returns the [bool](bool.md) value `true` to indicate that an operand is definitely true. The `false` operator returns the `bool` value `true` to indicate that an operand is definitely false. The `true` and `false` operators are not guaranteed to complement each other. That is, both the `true` and `false` operator might return the `bool` value `false` for the same operand. If a type defines one of the two operators, it must also define another operator. + +If a type with the defined `true` and `false` operators [overloads](operator.md) the [logical OR operator](../operators/or-operator.md) `|` or the [logical AND operator](../operators/and-operator.md) `&` in a certain way, the [conditional logical OR operator](../operators/conditional-or-operator.md) `||` or [conditional logical AND operator](../operators/conditional-and-operator.md) `&&`, respectively, can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). + +A type with the defined `true` operator can be the type of a result of a controlling conditional expression in the [if](if-else.md), [do](do.md), [while](while.md), and [for](for.md) statements and in the [conditional operator `?:`](../operators/conditional-operator.md). For more information, see the [Boolean expressions](~/_csharplang/spec/expressions.md#boolean-expressions) section of the [C# language specification](../language-specification/index.md). + +> [!TIP] +> Use the `bool?` type, if you need to support the three-valued logic, for example, when you work with databases that support a three-valued logical type. For more information, see [The bool? type](../../programming-guide/nullable-types/using-nullable-types.md#the-bool-type) section of the [Using nullable types](../../programming-guide/nullable-types/using-nullable-types.md) article. + +The following example presents the type that defines both `true` and `false` operators. Moreover, it overloads the logical AND operator `&` in such a way that the operator `&&` also can be evaluated for the operands of that type. + +[!code-csharp-interactive[true and false operators example](~/samples/snippets/csharp/keywords/TrueFalseOperatorsExample.cs)] + +Notice the short-circuiting behavior of the `&&` operator. When the `GetFuelLaunchStatus` method returns `LaunchStatus.Red`, the second operand of the `&&` operator is not evaluated. That is because `LaunchStatus.Red` is definitely false. Then the result of the logical AND doesn't depend on the value of the second operand. The output of the example is as follows: + +```console +Getting fuel launch status... +Wait! +``` + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [C# Operators](../operators/index.md) +- [`true` literal](true-literal.md) +- [`false` literal](false-literal.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/true-literal.md b/docs/csharp/language-reference/keywords/true-literal.md index f2f04ced974ea..dca22afb36ac8 100644 --- a/docs/csharp/language-reference/keywords/true-literal.md +++ b/docs/csharp/language-reference/keywords/true-literal.md @@ -1,5 +1,7 @@ --- -title: "true literal (C# Reference)" +title: "true literal - C# Reference" +ms.custom: seodec18 + ms.date: 12/03/2018 helpviewer_keywords: - "true literal keyword [C#]" @@ -16,6 +18,6 @@ Represents the [bool](bool.md) value `true`: - [C# Reference](../index.md) - [C# Programming Guide](../../programming-guide/index.md) - [C# Keywords](index.md) -- [true operator](true-operator.md) - [false](false.md) +- [true and false operators](true-false-operators.md) - [?: Operator](../operators/conditional-operator.md) diff --git a/docs/csharp/language-reference/keywords/true-operator.md b/docs/csharp/language-reference/keywords/true-operator.md deleted file mode 100644 index f289ae9847eab..0000000000000 --- a/docs/csharp/language-reference/keywords/true-operator.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "true operator (C# Reference)" -ms.date: 12/03/2018 -helpviewer_keywords: - - "true operator [C#]" -ms.assetid: acaba817-5da5-4364-b3b2-2e5c75ec1839 ---- -# true operator (C# Reference) - -Returns the [bool](bool.md) value `true` to indicate that an operand is definitely true. If a type defines the `true` operator, it must also define the [false operator](false-operator.md). The `true` and `false` operators are not guaranteed to complement each other. - -For the example that defines both `true` and `false` operators, see the [false operator](false-operator.md) article. - -> [!TIP] -> Use the `bool?` type, if you need to support the three-valued logic, for example, when you work with databases that support a three-valued logical type. For more information, see [The bool? type](../../programming-guide/nullable-types/using-nullable-types.md#the-bool-type) section of the [Using nullable types](../../programming-guide/nullable-types/using-nullable-types.md) article. - -If a type with the defined `true` operator [overloads](operator.md) the [logical OR operator](../operators/or-operator.md) `|` in a certain way, the [conditional logical OR operator](../operators/conditional-or-operator.md) `||`, which is short-circuiting, can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). - -A type with the defined `true` operator can be the type of a result of a controlling conditional expression in the [if](if-else.md), [do](do.md), [while](while.md), and [for](for.md) statements and in the [conditional operator `?:`](../operators/conditional-operator.md). For more information, see the [Boolean expressions](~/_csharplang/spec/expressions.md#boolean-expressions) section of the [C# language specification](../language-specification/index.md). - -## See also - -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [C# Operators](../operators/index.md) -- [`true` literal](true-literal.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/true.md b/docs/csharp/language-reference/keywords/true.md index 37855cf7ed81d..298fbb85caaac 100644 --- a/docs/csharp/language-reference/keywords/true.md +++ b/docs/csharp/language-reference/keywords/true.md @@ -1,5 +1,7 @@ --- -title: "true (C# Reference)" +title: "true - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "true_CSharpKeyword" @@ -12,7 +14,7 @@ ms.assetid: 7d0adcdb-02e9-478c-8c84-2e671d4acef3 Used as an overloaded operator or as a literal: -- [true operator](true-operator.md) +- [true operator](true-false-operators.md) - [true literal](true-literal.md) ## See also diff --git a/docs/csharp/language-reference/keywords/try-catch-finally.md b/docs/csharp/language-reference/keywords/try-catch-finally.md index 4d2bf143ba553..d86f271b6ed3a 100644 --- a/docs/csharp/language-reference/keywords/try-catch-finally.md +++ b/docs/csharp/language-reference/keywords/try-catch-finally.md @@ -1,5 +1,7 @@ --- -title: "try-catch-finally (C# Reference)" +title: "try-catch-finally - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "catch-finally_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/try-catch.md b/docs/csharp/language-reference/keywords/try-catch.md index 4a8e2846addc7..ea049142c8334 100644 --- a/docs/csharp/language-reference/keywords/try-catch.md +++ b/docs/csharp/language-reference/keywords/try-catch.md @@ -1,5 +1,7 @@ --- -title: "try-catch (C# Reference)" +title: "try-catch - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "try" diff --git a/docs/csharp/language-reference/keywords/try-finally.md b/docs/csharp/language-reference/keywords/try-finally.md index 345d110731d13..9a2596521750f 100644 --- a/docs/csharp/language-reference/keywords/try-finally.md +++ b/docs/csharp/language-reference/keywords/try-finally.md @@ -1,5 +1,7 @@ --- -title: "try-finally (C# Reference)" +title: "try-finally - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "finally" diff --git a/docs/csharp/language-reference/keywords/typeof.md b/docs/csharp/language-reference/keywords/typeof.md index 8a05d57e930a1..8839ae4e20c04 100644 --- a/docs/csharp/language-reference/keywords/typeof.md +++ b/docs/csharp/language-reference/keywords/typeof.md @@ -1,5 +1,7 @@ --- -title: "typeof (C# Reference)" +title: "typeof - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "typeof" @@ -10,7 +12,7 @@ ms.assetid: 0c08d880-515e-46bb-8cd2-48b8dd62c08d --- # typeof (C# Reference) -Used to obtain the `System.Type` object for a type. A `typeof` expression takes the following form: +Used to obtain the object for a type. A `typeof` expression takes the following form: ```csharp System.Type type = typeof(int); diff --git a/docs/csharp/language-reference/keywords/types.md b/docs/csharp/language-reference/keywords/types.md index a710a7cb242a8..31ad0040656d0 100644 --- a/docs/csharp/language-reference/keywords/types.md +++ b/docs/csharp/language-reference/keywords/types.md @@ -1,5 +1,7 @@ --- -title: "Types (C# Reference)" +title: "Types - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "types [C#]" diff --git a/docs/csharp/language-reference/keywords/uint.md b/docs/csharp/language-reference/keywords/uint.md index 67831e6f99f04..376991661ede3 100644 --- a/docs/csharp/language-reference/keywords/uint.md +++ b/docs/csharp/language-reference/keywords/uint.md @@ -1,5 +1,7 @@ --- -title: "uint keyword (C# Reference)" +title: "uint keyword - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "uint" diff --git a/docs/csharp/language-reference/keywords/ulong.md b/docs/csharp/language-reference/keywords/ulong.md index 6f3608299166e..0b2562ccaa418 100644 --- a/docs/csharp/language-reference/keywords/ulong.md +++ b/docs/csharp/language-reference/keywords/ulong.md @@ -1,5 +1,7 @@ --- -title: "ulong keyword (C# Reference)" +title: "ulong keyword - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "ulong_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/unchecked.md b/docs/csharp/language-reference/keywords/unchecked.md index aeb80c6a0336b..6325dc1f616fd 100644 --- a/docs/csharp/language-reference/keywords/unchecked.md +++ b/docs/csharp/language-reference/keywords/unchecked.md @@ -1,5 +1,7 @@ --- -title: "unchecked keyword (C# Reference)" +title: "unchecked keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "unchecked_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/unsafe.md b/docs/csharp/language-reference/keywords/unsafe.md index 5bf2cc443adb2..3a01b51eb4685 100644 --- a/docs/csharp/language-reference/keywords/unsafe.md +++ b/docs/csharp/language-reference/keywords/unsafe.md @@ -1,5 +1,7 @@ --- -title: "unsafe keyword (C# Reference)" +title: "unsafe keyword - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "unsafe_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/ushort.md b/docs/csharp/language-reference/keywords/ushort.md index a7471aafc9fa7..8cbbe975c5dc4 100644 --- a/docs/csharp/language-reference/keywords/ushort.md +++ b/docs/csharp/language-reference/keywords/ushort.md @@ -1,5 +1,7 @@ --- -title: "ushort (C# Reference)" +title: "ushort - C# Reference" +ms.custom: seodec18 + ms.date: 03/14/2017 f1_keywords: - "ushort" diff --git a/docs/csharp/language-reference/keywords/using-directive.md b/docs/csharp/language-reference/keywords/using-directive.md index 6076eeeccd0cb..d18b24ed00691 100644 --- a/docs/csharp/language-reference/keywords/using-directive.md +++ b/docs/csharp/language-reference/keywords/using-directive.md @@ -1,5 +1,7 @@ --- -title: "using Directive (C# Reference)" +title: "using Directive - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "using directive [C#]" diff --git a/docs/csharp/language-reference/keywords/using-statement.md b/docs/csharp/language-reference/keywords/using-statement.md index faacee7fc55f6..651b64ba5db15 100644 --- a/docs/csharp/language-reference/keywords/using-statement.md +++ b/docs/csharp/language-reference/keywords/using-statement.md @@ -1,5 +1,7 @@ --- -title: "using Statement (C# Reference)" +title: "using Statement - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 helpviewer_keywords: - "using statement [C#]" diff --git a/docs/csharp/language-reference/keywords/using-static.md b/docs/csharp/language-reference/keywords/using-static.md index 6717a625074ca..a08aa7536d6a6 100644 --- a/docs/csharp/language-reference/keywords/using-static.md +++ b/docs/csharp/language-reference/keywords/using-static.md @@ -1,5 +1,7 @@ --- -title: "using static Directive (C# Reference)" +title: "using static Directive - C# Reference" +ms.custom: seodec18 + ms.date: 03/10/2017 helpviewer_keywords: - "using static directive [C#]" diff --git a/docs/csharp/language-reference/keywords/using.md b/docs/csharp/language-reference/keywords/using.md index d697c4a4ac2c7..024b132165305 100644 --- a/docs/csharp/language-reference/keywords/using.md +++ b/docs/csharp/language-reference/keywords/using.md @@ -1,5 +1,7 @@ --- -title: "using (C# Reference)" +title: "using - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "using_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/value-types-table.md b/docs/csharp/language-reference/keywords/value-types-table.md index 1536d57ac6ee2..8d295b05f42f6 100644 --- a/docs/csharp/language-reference/keywords/value-types-table.md +++ b/docs/csharp/language-reference/keywords/value-types-table.md @@ -1,5 +1,7 @@ --- -title: "Value types table (C# Reference)" +title: "Value types table - C# Reference" +ms.custom: seodec18 + ms.date: 08/24/2018 helpviewer_keywords: - "value types [C#], table" diff --git a/docs/csharp/language-reference/keywords/value-types.md b/docs/csharp/language-reference/keywords/value-types.md index e5a2f1a3f8d16..80f6fe2957021 100644 --- a/docs/csharp/language-reference/keywords/value-types.md +++ b/docs/csharp/language-reference/keywords/value-types.md @@ -1,5 +1,7 @@ --- -title: "Value types (C# Reference)" +title: "Value types - C# Reference" +ms.custom: seodec18 + ms.date: 11/26/2018 f1_keywords: - "cs.valuetypes" diff --git a/docs/csharp/language-reference/keywords/value.md b/docs/csharp/language-reference/keywords/value.md index 76306b1d483af..2308290c4a802 100644 --- a/docs/csharp/language-reference/keywords/value.md +++ b/docs/csharp/language-reference/keywords/value.md @@ -1,5 +1,7 @@ --- -title: "value (C# Reference)" +title: "value - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "value_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/var.md b/docs/csharp/language-reference/keywords/var.md index f5cbdd69ded3e..831ed5f249d1e 100644 --- a/docs/csharp/language-reference/keywords/var.md +++ b/docs/csharp/language-reference/keywords/var.md @@ -1,5 +1,7 @@ --- -title: "var (C# Reference)" +title: "var - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "var" diff --git a/docs/csharp/language-reference/keywords/virtual.md b/docs/csharp/language-reference/keywords/virtual.md index d745e28aac9b6..609dccd16f4f8 100644 --- a/docs/csharp/language-reference/keywords/virtual.md +++ b/docs/csharp/language-reference/keywords/virtual.md @@ -1,5 +1,7 @@ --- -title: "virtual (C# Reference)" +title: "virtual - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "virtual_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/void.md b/docs/csharp/language-reference/keywords/void.md index 260201e96a2a5..c8c6c386f1acd 100644 --- a/docs/csharp/language-reference/keywords/void.md +++ b/docs/csharp/language-reference/keywords/void.md @@ -1,5 +1,7 @@ --- -title: "void (C# Reference)" +title: "void - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "void_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/volatile.md b/docs/csharp/language-reference/keywords/volatile.md index 394e7fff7f37e..8e46b314211e0 100644 --- a/docs/csharp/language-reference/keywords/volatile.md +++ b/docs/csharp/language-reference/keywords/volatile.md @@ -1,5 +1,7 @@ --- -title: "volatile (C# Reference)" +title: "volatile - C# Reference" +ms.custom: seodec18 + ms.date: 10/24/2018 f1_keywords: - "volatile_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/when.md b/docs/csharp/language-reference/keywords/when.md index 063e8a8f5c29f..b0a4b5288a865 100644 --- a/docs/csharp/language-reference/keywords/when.md +++ b/docs/csharp/language-reference/keywords/when.md @@ -1,5 +1,7 @@ --- -title: "when (C# Reference)" +title: "when - C# Reference" +ms.custom: seodec18 + ms.date: 03/07/2017 f1_keywords: - "when_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/where-clause.md b/docs/csharp/language-reference/keywords/where-clause.md index b4be8bf9cd54b..0d1cfde4c6430 100644 --- a/docs/csharp/language-reference/keywords/where-clause.md +++ b/docs/csharp/language-reference/keywords/where-clause.md @@ -1,5 +1,7 @@ --- -title: "where clause (C# Reference)" +title: "where clause - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "whereclause_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/where-generic-type-constraint.md b/docs/csharp/language-reference/keywords/where-generic-type-constraint.md index 2e7fece6046e0..03f4e4f73aea6 100644 --- a/docs/csharp/language-reference/keywords/where-generic-type-constraint.md +++ b/docs/csharp/language-reference/keywords/where-generic-type-constraint.md @@ -1,5 +1,7 @@ --- -title: "where (generic type constraint) (C# Reference)" +title: "where (generic type constraint) - C# Reference" +ms.custom: seodec18 + ms.date: 04/12/2018 f1_keywords: - "whereconstraint" diff --git a/docs/csharp/language-reference/keywords/while.md b/docs/csharp/language-reference/keywords/while.md index a49e6b5424e7c..d0551f2d6cbaf 100644 --- a/docs/csharp/language-reference/keywords/while.md +++ b/docs/csharp/language-reference/keywords/while.md @@ -1,5 +1,7 @@ --- -title: "while (C# Reference)" +title: "while - C# Reference" +ms.custom: seodec18 + ms.date: 05/28/2018 f1_keywords: - "while_CSharpKeyword" diff --git a/docs/csharp/language-reference/keywords/yield.md b/docs/csharp/language-reference/keywords/yield.md index 91f9ba4db0e21..58a974482121c 100644 --- a/docs/csharp/language-reference/keywords/yield.md +++ b/docs/csharp/language-reference/keywords/yield.md @@ -1,5 +1,7 @@ --- -title: "yield (C# Reference)" +title: "yield - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "yield" diff --git a/docs/csharp/language-reference/operators/addition-assignment-operator.md b/docs/csharp/language-reference/operators/addition-assignment-operator.md index 2f25140d5d2af..4b1637877bccc 100644 --- a/docs/csharp/language-reference/operators/addition-assignment-operator.md +++ b/docs/csharp/language-reference/operators/addition-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "+= Operator (C# Reference)" +title: "+= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 10/29/2018 f1_keywords: - "+=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/addition-operator.md b/docs/csharp/language-reference/operators/addition-operator.md index e55d5d7518706..956fec70edb39 100644 --- a/docs/csharp/language-reference/operators/addition-operator.md +++ b/docs/csharp/language-reference/operators/addition-operator.md @@ -1,5 +1,7 @@ --- -title: "+ Operator (C# Reference)" +title: "+ Operator - C# Reference" +ms.custom: seodec18 + ms.date: 10/22/2018 f1_keywords: - "+_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/and-assignment-operator.md b/docs/csharp/language-reference/operators/and-assignment-operator.md index c99c8e2e2b58c..b37f0ab8639ac 100644 --- a/docs/csharp/language-reference/operators/and-assignment-operator.md +++ b/docs/csharp/language-reference/operators/and-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "&= Operator (C# Reference)" +title: "&= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 10/29/2018 f1_keywords: - "&=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/and-operator.md b/docs/csharp/language-reference/operators/and-operator.md index 7f99175b43d8b..a9f517bcc2006 100644 --- a/docs/csharp/language-reference/operators/and-operator.md +++ b/docs/csharp/language-reference/operators/and-operator.md @@ -1,5 +1,7 @@ --- -title: "& Operator (C# Reference)" +title: "& Operator - C# Reference" +ms.custom: seodec18 + ms.date: 10/29/2018 f1_keywords: - "&_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/assignment-operator.md b/docs/csharp/language-reference/operators/assignment-operator.md index 57837788248de..1606db3aabb8c 100644 --- a/docs/csharp/language-reference/operators/assignment-operator.md +++ b/docs/csharp/language-reference/operators/assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "= Operator (C# Reference)" +title: "= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/26/2018 f1_keywords: - "=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/bitwise-complement-operator.md b/docs/csharp/language-reference/operators/bitwise-complement-operator.md index e67b04d1e6964..23b6fe9742d84 100644 --- a/docs/csharp/language-reference/operators/bitwise-complement-operator.md +++ b/docs/csharp/language-reference/operators/bitwise-complement-operator.md @@ -1,5 +1,7 @@ --- -title: "~ Operator (C# Reference)" +title: "~ Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/05/2018 f1_keywords: - "~_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/conditional-and-operator.md b/docs/csharp/language-reference/operators/conditional-and-operator.md index af53c4ce0e735..9c4bbb094fd73 100644 --- a/docs/csharp/language-reference/operators/conditional-and-operator.md +++ b/docs/csharp/language-reference/operators/conditional-and-operator.md @@ -1,5 +1,7 @@ --- -title: "&& Operator (C# Reference)" +title: "&& Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/06/2018 f1_keywords: - "&&_CSharpKeyword" @@ -18,7 +20,7 @@ The [logical AND operator](and-operator.md) `&` also computes the logical AND of ## Operator overloadability -A user-defined type cannot overload the conditional logical AND operator. However, if a user-defined type overloads the [logical AND](and-operator.md), [true](../keywords/true-operator.md), and [false](../keywords/false-operator.md) operators in a certain way, the `&&` operation can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). +A user-defined type cannot overload the conditional logical AND operator. However, if a user-defined type overloads the [logical AND](and-operator.md) and [true and false operators](../keywords/true-false-operators.md) in a certain way, the `&&` operation can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). ## C# language specification diff --git a/docs/csharp/language-reference/operators/conditional-operator.md b/docs/csharp/language-reference/operators/conditional-operator.md index b64732e9aea30..ce450dbf7c667 100644 --- a/docs/csharp/language-reference/operators/conditional-operator.md +++ b/docs/csharp/language-reference/operators/conditional-operator.md @@ -1,5 +1,7 @@ --- -title: "?: Operator (C# Reference)" +title: "?: Operator - C# Reference" +ms.custom: seodec18 + ms.date: "11/20/2018" f1_keywords: - "?:_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/conditional-or-operator.md b/docs/csharp/language-reference/operators/conditional-or-operator.md index f89ac18c052d5..dbd9e10ad2f86 100644 --- a/docs/csharp/language-reference/operators/conditional-or-operator.md +++ b/docs/csharp/language-reference/operators/conditional-or-operator.md @@ -1,5 +1,7 @@ --- -title: "|| Operator (C# Reference)" +title: "|| Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/06/2018 f1_keywords: - "||_CSharpKeyword" @@ -19,7 +21,7 @@ The [logical OR operator](or-operator.md) `|` also computes the logical OR of it ## Operator overloadability -A user-defined type cannot overload the conditional logical OR operator. However, if a user-defined type overloads the [logical OR](or-operator.md), [true](../keywords/true-operator.md), and [false](../keywords/false-operator.md) operators in a certain way, the `||` operation can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). +A user-defined type cannot overload the conditional logical OR operator. However, if a user-defined type overloads the [logical OR](or-operator.md) and [true and false operators](../keywords/true-false-operators.md) in a certain way, the `||` operation can be evaluated for the operands of that type. For more information, see the [User-defined conditional logical operators](~/_csharplang/spec/expressions.md#user-defined-conditional-logical-operators) section of the [C# language specification](../language-specification/index.md). ## C# language specification diff --git a/docs/csharp/language-reference/operators/decrement-operator.md b/docs/csharp/language-reference/operators/decrement-operator.md index 4fe795b3afc61..11eea8f4e5e7b 100644 --- a/docs/csharp/language-reference/operators/decrement-operator.md +++ b/docs/csharp/language-reference/operators/decrement-operator.md @@ -1,5 +1,7 @@ --- -title: "-- Operator (C# Reference)" +title: "-- Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/26/2018 f1_keywords: - "--_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/dereference-operator.md b/docs/csharp/language-reference/operators/dereference-operator.md index 75f42cf98fe71..def7020fc2299 100644 --- a/docs/csharp/language-reference/operators/dereference-operator.md +++ b/docs/csharp/language-reference/operators/dereference-operator.md @@ -1,5 +1,7 @@ --- -title: "-> Operator (C# Reference)" +title: "-> Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/26/2018 f1_keywords: - "->_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/division-assignment-operator.md b/docs/csharp/language-reference/operators/division-assignment-operator.md index 1df13c68e39a5..905d69a07e9c3 100644 --- a/docs/csharp/language-reference/operators/division-assignment-operator.md +++ b/docs/csharp/language-reference/operators/division-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "/= Operator (C# Reference)" +title: "/= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "/=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/division-operator.md b/docs/csharp/language-reference/operators/division-operator.md index 4b5b9350851bb..05861c373715a 100644 --- a/docs/csharp/language-reference/operators/division-operator.md +++ b/docs/csharp/language-reference/operators/division-operator.md @@ -1,5 +1,7 @@ --- -title: "/ Operator (C# Reference)" +title: "/ Operator - C# Reference" +ms.custom: seodec18 + ms.date: 04/04/2018 f1_keywords: - "/_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/equality-comparison-operator.md b/docs/csharp/language-reference/operators/equality-comparison-operator.md index 2e53eb1f4581e..b635d032055d3 100644 --- a/docs/csharp/language-reference/operators/equality-comparison-operator.md +++ b/docs/csharp/language-reference/operators/equality-comparison-operator.md @@ -1,5 +1,7 @@ --- -title: "== Operator (C# Reference)" +title: "== Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "==_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/greater-than-equal-operator.md b/docs/csharp/language-reference/operators/greater-than-equal-operator.md index bb625f0537085..ab9da42832c64 100644 --- a/docs/csharp/language-reference/operators/greater-than-equal-operator.md +++ b/docs/csharp/language-reference/operators/greater-than-equal-operator.md @@ -1,5 +1,7 @@ --- -title: ">= Operator (C# Reference)" +title: ">= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - ">=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/greater-than-operator.md b/docs/csharp/language-reference/operators/greater-than-operator.md index 776cca1967533..aee91143109c2 100644 --- a/docs/csharp/language-reference/operators/greater-than-operator.md +++ b/docs/csharp/language-reference/operators/greater-than-operator.md @@ -1,5 +1,7 @@ --- -title: "> Operator (C# Reference)" +title: "> Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - ">_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/increment-operator.md b/docs/csharp/language-reference/operators/increment-operator.md index d2011eb37be7e..67417f3b94526 100644 --- a/docs/csharp/language-reference/operators/increment-operator.md +++ b/docs/csharp/language-reference/operators/increment-operator.md @@ -1,5 +1,7 @@ --- -title: "++ Operator (C# Reference)" +title: "++ Operator - C# Reference" +ms.custom: seodec18 + ms.date: 11/26/2018 f1_keywords: - "++_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/index-operator.md b/docs/csharp/language-reference/operators/index-operator.md index 9ec9dd04ca414..0e1a9c7839928 100644 --- a/docs/csharp/language-reference/operators/index-operator.md +++ b/docs/csharp/language-reference/operators/index-operator.md @@ -1,5 +1,7 @@ --- -title: "[] Operator (C# Reference)" +title: "[] Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "[]_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/invocation-operator.md b/docs/csharp/language-reference/operators/invocation-operator.md index f49c4f62a57eb..23d972df3387a 100644 --- a/docs/csharp/language-reference/operators/invocation-operator.md +++ b/docs/csharp/language-reference/operators/invocation-operator.md @@ -1,5 +1,7 @@ --- -title: "() Operator (C# Reference)" +title: "() Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "()_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/lambda-operator.md b/docs/csharp/language-reference/operators/lambda-operator.md index 3f67d20d5bd84..4423400a5fe68 100644 --- a/docs/csharp/language-reference/operators/lambda-operator.md +++ b/docs/csharp/language-reference/operators/lambda-operator.md @@ -1,5 +1,7 @@ --- -title: "=> Operator (C# Reference)" +title: "=> Operator - C# Reference" +ms.custom: seodec18 + ms.date: 10/02/2017 f1_keywords: - "=>_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/left-shift-assignment-operator.md b/docs/csharp/language-reference/operators/left-shift-assignment-operator.md index 9d2bff2833e1f..c1de9998e3cb9 100644 --- a/docs/csharp/language-reference/operators/left-shift-assignment-operator.md +++ b/docs/csharp/language-reference/operators/left-shift-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "<<= Operator (C# Reference)" +title: "<<= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "<<=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/left-shift-operator.md b/docs/csharp/language-reference/operators/left-shift-operator.md index ac24d6604e366..f6a7c265c5276 100644 --- a/docs/csharp/language-reference/operators/left-shift-operator.md +++ b/docs/csharp/language-reference/operators/left-shift-operator.md @@ -1,5 +1,7 @@ --- -title: "<< Operator (C# Reference)" +title: "<< Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "<<_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/less-than-equal-operator.md b/docs/csharp/language-reference/operators/less-than-equal-operator.md index 541d52fdecd34..71e41de92a60c 100644 --- a/docs/csharp/language-reference/operators/less-than-equal-operator.md +++ b/docs/csharp/language-reference/operators/less-than-equal-operator.md @@ -1,5 +1,7 @@ --- -title: "<= Operator (C# Reference)" +title: "<= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "<=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/less-than-operator.md b/docs/csharp/language-reference/operators/less-than-operator.md index 005ff113d45ff..55b43bbb68b87 100644 --- a/docs/csharp/language-reference/operators/less-than-operator.md +++ b/docs/csharp/language-reference/operators/less-than-operator.md @@ -1,5 +1,7 @@ --- -title: "< Operator (C# Reference)" +title: "< Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "<_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/logical-negation-operator.md b/docs/csharp/language-reference/operators/logical-negation-operator.md index 07dd0144c0c1c..d2698f633a5ef 100644 --- a/docs/csharp/language-reference/operators/logical-negation-operator.md +++ b/docs/csharp/language-reference/operators/logical-negation-operator.md @@ -1,5 +1,7 @@ --- -title: "! Operator (C# Reference)" +title: "! Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "!_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/member-access-operator.md b/docs/csharp/language-reference/operators/member-access-operator.md index 00390c168ab64..0c870ffb32f5c 100644 --- a/docs/csharp/language-reference/operators/member-access-operator.md +++ b/docs/csharp/language-reference/operators/member-access-operator.md @@ -1,5 +1,7 @@ --- -title: ". Operator (C# Reference)" +title: ". Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "._CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/multiplication-assignment-operator.md b/docs/csharp/language-reference/operators/multiplication-assignment-operator.md index f1da54f4cb8c3..887f8c6255591 100644 --- a/docs/csharp/language-reference/operators/multiplication-assignment-operator.md +++ b/docs/csharp/language-reference/operators/multiplication-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "*= Operator (C# Reference)" +title: "*= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "*=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/multiplication-operator.md b/docs/csharp/language-reference/operators/multiplication-operator.md index cbc8c13542cdd..31773a94c0e09 100644 --- a/docs/csharp/language-reference/operators/multiplication-operator.md +++ b/docs/csharp/language-reference/operators/multiplication-operator.md @@ -1,5 +1,7 @@ --- -title: "* Operator (C# Reference)" +title: "* Operator - C# Reference" +ms.custom: seodec18 + ms.date: 04/04/2018 f1_keywords: - "*_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/namespace-alias-qualifer.md b/docs/csharp/language-reference/operators/namespace-alias-qualifer.md index 7e9e418e5a73e..bc1eef1f76881 100644 --- a/docs/csharp/language-reference/operators/namespace-alias-qualifer.md +++ b/docs/csharp/language-reference/operators/namespace-alias-qualifer.md @@ -1,5 +1,7 @@ --- -title: ":: Operator (C# Reference)" +title: ":: Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "::_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/not-equal-operator.md b/docs/csharp/language-reference/operators/not-equal-operator.md index d84181aa6d5fb..6c88ddcdf132a 100644 --- a/docs/csharp/language-reference/operators/not-equal-operator.md +++ b/docs/csharp/language-reference/operators/not-equal-operator.md @@ -1,5 +1,7 @@ --- -title: "!= Operator (C# Reference)" +title: "!= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "!=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/null-coalescing-operator.md b/docs/csharp/language-reference/operators/null-coalescing-operator.md index f94713e4e7ad7..228837eee7c7d 100644 --- a/docs/csharp/language-reference/operators/null-coalescing-operator.md +++ b/docs/csharp/language-reference/operators/null-coalescing-operator.md @@ -1,5 +1,7 @@ --- -title: "?? Operator (C# Reference)" +title: "?? Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "??_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/null-conditional-operators.md b/docs/csharp/language-reference/operators/null-conditional-operators.md index c8c77718e90b1..088042b635874 100644 --- a/docs/csharp/language-reference/operators/null-conditional-operators.md +++ b/docs/csharp/language-reference/operators/null-conditional-operators.md @@ -1,5 +1,7 @@ --- -title: "Null-conditional Operators (C# Reference)" +title: "Null-conditional Operators - C# Reference" +ms.custom: seodec18 + ms.date: 04/03/2015 helpviewer_keywords: - "null-conditional operators [C#]" diff --git a/docs/csharp/language-reference/operators/or-assignment-operator.md b/docs/csharp/language-reference/operators/or-assignment-operator.md index 8df75fe0f2dc6..8d116f845e3bd 100644 --- a/docs/csharp/language-reference/operators/or-assignment-operator.md +++ b/docs/csharp/language-reference/operators/or-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "|= Operator (C# Reference)" +title: "|= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "|=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/or-operator.md b/docs/csharp/language-reference/operators/or-operator.md index be0079e2ccc75..fd3509cdfd5a5 100644 --- a/docs/csharp/language-reference/operators/or-operator.md +++ b/docs/csharp/language-reference/operators/or-operator.md @@ -1,5 +1,7 @@ --- -title: "| Operator (C# Reference)" +title: "| Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "|_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/remainder-assignment-operator.md b/docs/csharp/language-reference/operators/remainder-assignment-operator.md index 6ee42951d704c..aef0cce79efae 100644 --- a/docs/csharp/language-reference/operators/remainder-assignment-operator.md +++ b/docs/csharp/language-reference/operators/remainder-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "%= Operator (C# Reference)" +title: "%= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 09/04/2018 f1_keywords: - "%=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/remainder-operator.md b/docs/csharp/language-reference/operators/remainder-operator.md index dddb6783de430..8f1093fa7be71 100644 --- a/docs/csharp/language-reference/operators/remainder-operator.md +++ b/docs/csharp/language-reference/operators/remainder-operator.md @@ -1,5 +1,7 @@ --- -title: "% Operator (C# Reference)" +title: "% Operator - C# Reference" +ms.custom: seodec18 + ms.date: 09/04/2018 f1_keywords: - "%_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/right-shift-assignment-operator.md b/docs/csharp/language-reference/operators/right-shift-assignment-operator.md index da53d6b1e3467..9cd754167b9db 100644 --- a/docs/csharp/language-reference/operators/right-shift-assignment-operator.md +++ b/docs/csharp/language-reference/operators/right-shift-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: ">>= Operator (C# Reference)" +title: ">>= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - ">>=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/right-shift-operator.md b/docs/csharp/language-reference/operators/right-shift-operator.md index fcf2bc3477fc7..a66b3d49bc8c8 100644 --- a/docs/csharp/language-reference/operators/right-shift-operator.md +++ b/docs/csharp/language-reference/operators/right-shift-operator.md @@ -1,5 +1,7 @@ --- -title: ">> Operator (C# Reference)" +title: ">> Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - ">>_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/subtraction-assignment-operator.md b/docs/csharp/language-reference/operators/subtraction-assignment-operator.md index e856ccdec938f..bca8298a3fd8a 100644 --- a/docs/csharp/language-reference/operators/subtraction-assignment-operator.md +++ b/docs/csharp/language-reference/operators/subtraction-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "-= Operator (C# Reference)" +title: "-= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "-=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/subtraction-operator.md b/docs/csharp/language-reference/operators/subtraction-operator.md index 0607054751db3..0250be37095d5 100644 --- a/docs/csharp/language-reference/operators/subtraction-operator.md +++ b/docs/csharp/language-reference/operators/subtraction-operator.md @@ -1,5 +1,7 @@ --- -title: "- Operator (C# Reference)" +title: "- Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "-_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/xor-assignment-operator.md b/docs/csharp/language-reference/operators/xor-assignment-operator.md index 3dd6f499321b0..476a661d8b506 100644 --- a/docs/csharp/language-reference/operators/xor-assignment-operator.md +++ b/docs/csharp/language-reference/operators/xor-assignment-operator.md @@ -1,5 +1,7 @@ --- -title: "^= Operator (C# Reference)" +title: "^= Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "^=_CSharpKeyword" diff --git a/docs/csharp/language-reference/operators/xor-operator.md b/docs/csharp/language-reference/operators/xor-operator.md index 302a06bf9bacd..22da8218c6243 100644 --- a/docs/csharp/language-reference/operators/xor-operator.md +++ b/docs/csharp/language-reference/operators/xor-operator.md @@ -1,5 +1,7 @@ --- -title: "^ Operator (C# Reference)" +title: "^ Operator - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "^_CSharpKeyword" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-define.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-define.md index d3f16b6c96fdc..e260877f2742b 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-define.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-define.md @@ -1,5 +1,7 @@ --- -title: "#define (C# Reference)" +title: "#define - C# Reference" +ms.custom: seodec18 + ms.date: 06/30/2018 f1_keywords: - "#define" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-elif.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-elif.md index 456ad79d971a0..65648f3e2b2b7 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-elif.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-elif.md @@ -1,5 +1,7 @@ --- -title: "#elif (C# Reference)" +title: "#elif - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#elif" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-else.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-else.md index ac43e6932ec63..4bce489c5100a 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-else.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-else.md @@ -1,5 +1,7 @@ --- -title: "#else (C# Reference)" +title: "#else - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#else" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-endif.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-endif.md index 236a1122639ed..1413ece98be78 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-endif.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-endif.md @@ -1,5 +1,7 @@ --- -title: "#endif (C# Reference)" +title: "#endif - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#endif" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-endregion.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-endregion.md index b7c78cf6f6d59..14ad16c2e19ef 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-endregion.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-endregion.md @@ -1,5 +1,7 @@ --- -title: "#endregion (C# Reference)" +title: "#endregion - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#endregion" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-error.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-error.md index ee2d012fbcab8..f138387bfc45d 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-error.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-error.md @@ -1,5 +1,7 @@ --- -title: "#error (C# Reference)" +title: "#error - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#error" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-if.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-if.md index d90544cbbf9ff..776c374c7c8d0 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-if.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-if.md @@ -1,5 +1,7 @@ --- -title: "#if preprocessor directive (C# Reference)" +title: "#if preprocessor directive - C# Reference" +ms.custom: seodec18 + ms.date: 06/30/2018 f1_keywords: - "#if" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-line.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-line.md index 80f0d1ba18dac..12a6eea48bfc5 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-line.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-line.md @@ -1,5 +1,7 @@ --- -title: "#line (C# Reference)" +title: "#line - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#line" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-checksum.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-checksum.md index 36d1cf4d34ed7..a7f437444245f 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-checksum.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-checksum.md @@ -1,5 +1,7 @@ --- -title: "#pragma checksum (C# Reference)" +title: "#pragma checksum - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#pragma checksum" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md index b506443c12da4..aca908af477ba 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma-warning.md @@ -1,5 +1,7 @@ --- -title: "#pragma warning (C# Reference)" +title: "#pragma warning - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#pragma warning" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma.md index de11e73dbaf2a..e59ebb80f0564 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-pragma.md @@ -1,5 +1,7 @@ --- -title: "#pragma (C# Reference)" +title: "#pragma - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#pragma" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-region.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-region.md index db1589ef73dac..f9c7ffd492893 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-region.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-region.md @@ -1,5 +1,7 @@ --- -title: "#region (C# Reference)" +title: "#region - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#region" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-undef.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-undef.md index 20c5870a0eb5a..91dca07a5cb04 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-undef.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-undef.md @@ -1,5 +1,7 @@ --- -title: "#undef (C# Reference)" +title: "#undef - C# Reference" +ms.custom: seodec18 + ms.date: 06/30/2018 f1_keywords: - "#undef" diff --git a/docs/csharp/language-reference/preprocessor-directives/preprocessor-warning.md b/docs/csharp/language-reference/preprocessor-directives/preprocessor-warning.md index e87380817a510..b8aba92579504 100644 --- a/docs/csharp/language-reference/preprocessor-directives/preprocessor-warning.md +++ b/docs/csharp/language-reference/preprocessor-directives/preprocessor-warning.md @@ -1,5 +1,7 @@ --- -title: "#warning (C# Reference)" +title: "#warning - C# Reference" +ms.custom: seodec18 + ms.date: 07/20/2015 f1_keywords: - "#warning" diff --git a/docs/csharp/language-reference/tokens/index.md b/docs/csharp/language-reference/tokens/index.md index f37eb40c0f6bc..9e5c28c82ca2b 100644 --- a/docs/csharp/language-reference/tokens/index.md +++ b/docs/csharp/language-reference/tokens/index.md @@ -1,5 +1,7 @@ --- -title: "Special Characters (C# Reference)" +title: "Special Characters - C# Reference" +ms.custom: seodec18 + ms.date: 02/14/2017 f1_keywords: - "cs.special characters" diff --git a/docs/csharp/language-reference/tokens/interpolated.md b/docs/csharp/language-reference/tokens/interpolated.md index ad01b412c6016..6426c1946b0f0 100644 --- a/docs/csharp/language-reference/tokens/interpolated.md +++ b/docs/csharp/language-reference/tokens/interpolated.md @@ -1,5 +1,7 @@ --- -title: "$ - string interpolation (C# Reference)" +title: "$ - string interpolation - C# Reference" +ms.custom: seodec18 + description: String interpolation provides a more readable and convenient syntax to format string output than traditional string composite formatting. ms.date: 03/26/2018 f1_keywords: diff --git a/docs/csharp/language-reference/tokens/verbatim.md b/docs/csharp/language-reference/tokens/verbatim.md index 2aba0cf3e88da..6bbb3827fb3d5 100644 --- a/docs/csharp/language-reference/tokens/verbatim.md +++ b/docs/csharp/language-reference/tokens/verbatim.md @@ -1,5 +1,7 @@ --- -title: "@ (C# Reference)" +title: "@ - C# Reference" +ms.custom: seodec18 + ms.date: 02/09/2017 f1_keywords: - "@_CSharpKeyword" diff --git a/docs/csharp/misc/cs0215.md b/docs/csharp/misc/cs0215.md index e07fba349b502..c0fca63111937 100644 --- a/docs/csharp/misc/cs0215.md +++ b/docs/csharp/misc/cs0215.md @@ -10,7 +10,7 @@ ms.assetid: 2060440d-be22-4c10-8b26-43b08b615447 # Compiler Error CS0215 The return type of operator True or False must be bool - User-defined [true](../../csharp/language-reference/keywords/true-operator.md) and [false](../../csharp/language-reference/keywords/false-operator.md) operators must have a return type of [bool](../../csharp/language-reference/keywords/bool.md). For more information, see [Overloadable Operators](../../csharp/programming-guide/statements-expressions-operators/overloadable-operators.md) and the [operator](../../csharp/language-reference/keywords/operator.md) keyword article. + User-defined [true and false](../language-reference/keywords/true-false-operators.md) operators must have a return type of [bool](../language-reference/keywords/bool.md). For more information, see [Overloadable Operators](../programming-guide/statements-expressions-operators/overloadable-operators.md) and the [operator](../language-reference/keywords/operator.md) keyword article. The following sample generates CS0215: diff --git a/docs/csharp/misc/cs0216.md b/docs/csharp/misc/cs0216.md index a08f627db7820..8174bae7fbd75 100644 --- a/docs/csharp/misc/cs0216.md +++ b/docs/csharp/misc/cs0216.md @@ -10,7 +10,7 @@ ms.assetid: afb3dd29-3eff-4b62-8267-eb726c2bcee4 # Compiler Error CS0216 The operator 'operator' requires a matching operator 'missing_operator' to also be defined - A user-defined [true](../../csharp/language-reference/keywords/true.md) operator requires a user-defined [false](../../csharp/language-reference/keywords/false.md) operator, and vice versa. For more information, see [Operators](../../csharp/programming-guide/statements-expressions-operators/operators.md). + A user-defined [true](../language-reference/keywords/true-false-operators.md) operator requires a user-defined [false](../language-reference/keywords/true-false-operators.md) operator, and vice versa. The following sample generates CS0216: diff --git a/docs/csharp/misc/cs0217.md b/docs/csharp/misc/cs0217.md index 4a768404a63f6..ec851f4418d45 100644 --- a/docs/csharp/misc/cs0217.md +++ b/docs/csharp/misc/cs0217.md @@ -52,5 +52,6 @@ public class MyClass ## See also -- [Overloadable Operators](../../csharp/programming-guide/statements-expressions-operators/overloadable-operators.md) -- [`operator` keyword](../../csharp/language-reference/keywords/operator.md) +- [Overloadable Operators](../programming-guide/statements-expressions-operators/overloadable-operators.md) +- [`operator` keyword](../language-reference/keywords/operator.md) +- [true and false operators](../language-reference/keywords/true-false-operators.md) diff --git a/docs/csharp/misc/cs0218.md b/docs/csharp/misc/cs0218.md index 9a2c8806e4349..65ef7cc1a7c2f 100644 --- a/docs/csharp/misc/cs0218.md +++ b/docs/csharp/misc/cs0218.md @@ -10,7 +10,7 @@ ms.assetid: f675e06a-c55c-44a1-b5db-0df178fd8f79 # Compiler Error CS0218 The type ('type') must contain declarations of operator true and operator false - If you define an operator for a user-defined type, and then try to use the operator as a short-circuit operator, the user-defined operator must have operator true and operator false defined. For more information on short-circuit operators, see [&& Operator](../../csharp/language-reference/operators/conditional-and-operator.md) and [|| Operator](../../csharp/language-reference/operators/conditional-or-operator.md). +If a user-defined type overloads the [& operator](../language-reference/operators/and-operator.md) or [| operator](../language-reference/operators/or-operator.md), it must also define [true and false](../language-reference/keywords/true-false-operators.md) operators, in order to make short-circuiting [&& operator](../language-reference/operators/conditional-and-operator.md) or [|| operator](../language-reference/operators/conditional-or-operator.md) defined. The following sample generates CS0218: diff --git a/docs/csharp/programming-guide/arrays/arrays-as-objects.md b/docs/csharp/programming-guide/arrays/arrays-as-objects.md index e798b7fe95ca1..9584c07c6d1a8 100644 --- a/docs/csharp/programming-guide/arrays/arrays-as-objects.md +++ b/docs/csharp/programming-guide/arrays/arrays-as-objects.md @@ -1,5 +1,6 @@ --- -title: "Arrays as Objects (C# Programming Guide)" +title: "Arrays as Objects - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "arrays [C#], as objects" diff --git a/docs/csharp/programming-guide/arrays/implicitly-typed-arrays.md b/docs/csharp/programming-guide/arrays/implicitly-typed-arrays.md index 5e46005ef1e1d..6b0cb60dcca5d 100644 --- a/docs/csharp/programming-guide/arrays/implicitly-typed-arrays.md +++ b/docs/csharp/programming-guide/arrays/implicitly-typed-arrays.md @@ -1,5 +1,6 @@ --- -title: "Implicitly Typed Arrays (C# Programming Guide)" +title: "Implicitly Typed Arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "arrays [C#], implicity-typed" diff --git a/docs/csharp/programming-guide/arrays/index.md b/docs/csharp/programming-guide/arrays/index.md index 37197ac436b37..57ce5f920d975 100644 --- a/docs/csharp/programming-guide/arrays/index.md +++ b/docs/csharp/programming-guide/arrays/index.md @@ -1,5 +1,6 @@ --- -title: "Arrays (C# Programming Guide)" +title: "Arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "arrays [C#]" diff --git a/docs/csharp/programming-guide/arrays/jagged-arrays.md b/docs/csharp/programming-guide/arrays/jagged-arrays.md index 4494ce4690b64..0d9898c2721d2 100644 --- a/docs/csharp/programming-guide/arrays/jagged-arrays.md +++ b/docs/csharp/programming-guide/arrays/jagged-arrays.md @@ -1,5 +1,6 @@ --- -title: "Jagged Arrays (C# Programming Guide)" +title: "Jagged Arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "jagged arrays [C#]" diff --git a/docs/csharp/programming-guide/arrays/multidimensional-arrays.md b/docs/csharp/programming-guide/arrays/multidimensional-arrays.md index db79b1ee4a7bf..026fbf79731e3 100644 --- a/docs/csharp/programming-guide/arrays/multidimensional-arrays.md +++ b/docs/csharp/programming-guide/arrays/multidimensional-arrays.md @@ -1,5 +1,6 @@ --- -title: "Multidimensional Arrays (C# Programming Guide)" +title: "Multidimensional Arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "arrays [C#], multidimensional" diff --git a/docs/csharp/programming-guide/arrays/passing-arrays-as-arguments.md b/docs/csharp/programming-guide/arrays/passing-arrays-as-arguments.md index 4c429c105f4c9..a0214636b9730 100644 --- a/docs/csharp/programming-guide/arrays/passing-arrays-as-arguments.md +++ b/docs/csharp/programming-guide/arrays/passing-arrays-as-arguments.md @@ -1,5 +1,6 @@ --- -title: "Passing arrays as arguments (C# Programming Guide)" +title: "Passing arrays as arguments - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/05/2018 helpviewer_keywords: - "arrays [C#], passing as arguments" diff --git a/docs/csharp/programming-guide/arrays/single-dimensional-arrays.md b/docs/csharp/programming-guide/arrays/single-dimensional-arrays.md index 11202316430a1..6241113b89f59 100644 --- a/docs/csharp/programming-guide/arrays/single-dimensional-arrays.md +++ b/docs/csharp/programming-guide/arrays/single-dimensional-arrays.md @@ -1,5 +1,6 @@ --- -title: "Single-Dimensional Arrays (C# Programming Guide)" +title: "Single-Dimensional Arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "single-dimensional arrays [C#]" diff --git a/docs/csharp/programming-guide/arrays/using-foreach-with-arrays.md b/docs/csharp/programming-guide/arrays/using-foreach-with-arrays.md index 4b495cdbe8b32..92bf55278cb55 100644 --- a/docs/csharp/programming-guide/arrays/using-foreach-with-arrays.md +++ b/docs/csharp/programming-guide/arrays/using-foreach-with-arrays.md @@ -1,5 +1,6 @@ --- -title: "Using foreach with arrays (C# Programming Guide)" +title: "Using foreach with arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 05/23/2018 helpviewer_keywords: - "arrays [C#], foreach" diff --git a/docs/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md b/docs/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md index dd405e1c49b6d..dc05dc476b2a5 100644 --- a/docs/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md +++ b/docs/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members.md @@ -1,5 +1,6 @@ --- -title: "Abstract and Sealed Classes and Class Members (C# Programming Guide)" +title: "Abstract and Sealed Classes and Class Members - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "abstract classes [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/access-modifiers.md b/docs/csharp/programming-guide/classes-and-structs/access-modifiers.md index a376db2202ce4..3c3bd381e6f2a 100644 --- a/docs/csharp/programming-guide/classes-and-structs/access-modifiers.md +++ b/docs/csharp/programming-guide/classes-and-structs/access-modifiers.md @@ -1,5 +1,6 @@ --- -title: "Access Modifiers (C# Programming Guide)" +title: "Access Modifiers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# Language, access modifiers" diff --git a/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md b/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md index 25e44b4b92709..eb40862a19671 100644 --- a/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md +++ b/docs/csharp/programming-guide/classes-and-structs/anonymous-types.md @@ -1,5 +1,6 @@ --- -title: "Anonymous Types (C# Programming Guide)" +title: "Anonymous Types - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "anonymous types [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/auto-implemented-properties.md b/docs/csharp/programming-guide/classes-and-structs/auto-implemented-properties.md index 560e49470abf6..07d02005943a4 100644 --- a/docs/csharp/programming-guide/classes-and-structs/auto-implemented-properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/auto-implemented-properties.md @@ -1,5 +1,6 @@ --- -title: "Auto-Implemented Properties (C# Programming Guide)" +title: "Auto-Implemented Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "auto-implemented properties [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/classes.md b/docs/csharp/programming-guide/classes-and-structs/classes.md index 4a2f0a7640fa1..a0fc7400502ec 100644 --- a/docs/csharp/programming-guide/classes-and-structs/classes.md +++ b/docs/csharp/programming-guide/classes-and-structs/classes.md @@ -1,5 +1,6 @@ --- -title: "Classes (C# Programming Guide)" +title: "Classes - C# Programming Guide" +ms.custom: seodec18 description: Learn about the class types and how to create them ms.date: 08/21/2018 helpviewer_keywords: diff --git a/docs/csharp/programming-guide/classes-and-structs/constants.md b/docs/csharp/programming-guide/classes-and-structs/constants.md index 8e48b60c8ee17..4df8daf77d197 100644 --- a/docs/csharp/programming-guide/classes-and-structs/constants.md +++ b/docs/csharp/programming-guide/classes-and-structs/constants.md @@ -1,5 +1,6 @@ --- -title: "Constants (C# Programming Guide)" +title: "Constants - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, constants" diff --git a/docs/csharp/programming-guide/classes-and-structs/constructors.md b/docs/csharp/programming-guide/classes-and-structs/constructors.md index 00d7edf4093f5..3eb3d668cfb80 100644 --- a/docs/csharp/programming-guide/classes-and-structs/constructors.md +++ b/docs/csharp/programming-guide/classes-and-structs/constructors.md @@ -1,5 +1,6 @@ --- -title: "Constructors (C# Programming Guide)" +title: "Constructors - C# Programming Guide" +ms.custom: seodec18 ms.date: 05/05/2017 helpviewer_keywords: - "constructors [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/destructors.md b/docs/csharp/programming-guide/classes-and-structs/destructors.md index 81ba930079b02..3a600a548fadf 100644 --- a/docs/csharp/programming-guide/classes-and-structs/destructors.md +++ b/docs/csharp/programming-guide/classes-and-structs/destructors.md @@ -1,5 +1,6 @@ --- -title: "Finalizers (C# Programming Guide)" +title: "Finalizers - C# Programming Guide" +ms.custom: seodec18 ms.date: 10/08/2018 helpviewer_keywords: - "~ [C#], in finalizers" diff --git a/docs/csharp/programming-guide/classes-and-structs/extension-methods.md b/docs/csharp/programming-guide/classes-and-structs/extension-methods.md index 8dd41d5634125..f8831f29e7ad4 100644 --- a/docs/csharp/programming-guide/classes-and-structs/extension-methods.md +++ b/docs/csharp/programming-guide/classes-and-structs/extension-methods.md @@ -1,5 +1,6 @@ --- -title: "Extension Methods (C# Programming Guide)" +title: "Extension Methods - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "methods [C#], adding to existing types" diff --git a/docs/csharp/programming-guide/classes-and-structs/fields.md b/docs/csharp/programming-guide/classes-and-structs/fields.md index 885e8efee67c7..78a0f4e9b3f27 100644 --- a/docs/csharp/programming-guide/classes-and-structs/fields.md +++ b/docs/csharp/programming-guide/classes-and-structs/fields.md @@ -1,5 +1,6 @@ --- -title: "Fields (C# Programming Guide)" +title: "Fields - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "fields [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md b/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md index 6c3a150227c43..255407ccc8f2a 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md @@ -1,5 +1,6 @@ --- -title: "How to: Create a New Method for an Enumeration (C# Programming Guide)" +title: "How to: Create a New Method for an Enumeration - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "enumerations [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-declare-and-use-read-write-properties.md b/docs/csharp/programming-guide/classes-and-structs/how-to-declare-and-use-read-write-properties.md index a0f9ffec7846a..b3d36b14b3821 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-declare-and-use-read-write-properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-declare-and-use-read-write-properties.md @@ -1,5 +1,6 @@ --- -title: "How to: Declare and Use Read Write Properties (C# Programming Guide)" +title: "How to: Declare and Use Read Write Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "get accessor [C#], declaring properties" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-define-abstract-properties.md b/docs/csharp/programming-guide/classes-and-structs/how-to-define-abstract-properties.md index 9656e94640864..dc3803205ee9e 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-define-abstract-properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-define-abstract-properties.md @@ -1,5 +1,6 @@ --- -title: "How to: Define Abstract Properties (C# Programming Guide)" +title: "How to: Define Abstract Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "properties [C#], abstract" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties.md b/docs/csharp/programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties.md index 4465dfdcc4bcd..e411282a0ad3f 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-implement-a-lightweight-class-with-auto-implemented-properties.md @@ -1,5 +1,6 @@ --- -title: "How to: Implement a Lightweight Class with Auto-Implemented Properties (C# Programming Guide)" +title: "How to: Implement a Lightweight Class with Auto-Implemented Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "auto-implemented properties [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md b/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md index db15e02dab7d1..a3e6126673b35 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method.md @@ -1,5 +1,6 @@ --- -title: "How to: Implement and Call a Custom Extension Method (C# Programming Guide)" +title: "How to: Implement and Call a Custom Extension Method - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "extension methods [C#], implementing and calling" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md b/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md index e5f24c1816d45..a9185a6df9246 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md @@ -1,5 +1,6 @@ --- -title: "How to initialize a dictionary with a collection initializer (C# Programming Guide)" +title: "How to initialize a dictionary with a collection initializer - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "collection initializers [C#], with Dictionary" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer.md b/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer.md index 76cec9b23dc32..0016f5ae6508d 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer.md @@ -1,5 +1,6 @@ --- -title: "How to: Initialize Objects by Using an Object Initializer (C# Programming Guide)" +title: "How to: Initialize Objects by Using an Object Initializer - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "object initializers [C#], how to use" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-know-the-difference-passing-a-struct-and-passing-a-class-to-a-method.md b/docs/csharp/programming-guide/classes-and-structs/how-to-know-the-difference-passing-a-struct-and-passing-a-class-to-a-method.md index 0fdaf3d7375fe..8ea431808287b 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-know-the-difference-passing-a-struct-and-passing-a-class-to-a-method.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-know-the-difference-passing-a-struct-and-passing-a-class-to-a-method.md @@ -1,5 +1,6 @@ --- -title: "How to: Know the Difference Between Passing a Struct and Passing a Class Reference to a Method (C# Programming Guide)" +title: "How to: Know the Difference Between Passing a Struct and Passing a Class Reference to a Method - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "structs [C#], passing as method parameter" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method.md b/docs/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method.md index 81ce3ca2b18f7..db6bd7318d5d7 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-override-the-tostring-method.md @@ -1,5 +1,6 @@ --- -title: "How to: Override the ToString Method (C# Programming Guide)" +title: "How to: Override the ToString Method - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "ToString method, overriding in C#" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-return-subsets-of-element-properties-in-a-query.md b/docs/csharp/programming-guide/classes-and-structs/how-to-return-subsets-of-element-properties-in-a-query.md index a73efccfae0a5..81fdd1f81f3e3 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-return-subsets-of-element-properties-in-a-query.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-return-subsets-of-element-properties-in-a-query.md @@ -1,5 +1,6 @@ --- -title: "How to: Return Subsets of Element Properties in a Query (C# Programming Guide)" +title: "How to: Return Subsets of Element Properties in a Query - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "anonymous types [C#], for subsets of element properties" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-use-implicitly-typed-local-variables-and-arrays-in-a-query-expression.md b/docs/csharp/programming-guide/classes-and-structs/how-to-use-implicitly-typed-local-variables-and-arrays-in-a-query-expression.md index de42167f5f09a..23291140313a6 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-use-implicitly-typed-local-variables-and-arrays-in-a-query-expression.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-use-implicitly-typed-local-variables-and-arrays-in-a-query-expression.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Implicitly Typed Local Variables and Arrays in a Query Expression (C# Programming Guide)" +title: "How to: Use Implicitly Typed Local Variables and Arrays in a Query Expression - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "implicitly-typed local variables [C#], how to use" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-use-named-and-optional-arguments-in-office-programming.md b/docs/csharp/programming-guide/classes-and-structs/how-to-use-named-and-optional-arguments-in-office-programming.md index b9097b7c49371..b9ae607bc5b36 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-use-named-and-optional-arguments-in-office-programming.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-use-named-and-optional-arguments-in-office-programming.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Named and Optional Arguments in Office Programming (C# Programming Guide)" +title: "How to: Use Named and Optional Arguments in Office Programming - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "named and optional arguments [C#], Office programming" diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-write-a-copy-constructor.md b/docs/csharp/programming-guide/classes-and-structs/how-to-write-a-copy-constructor.md index 22a8ffc2422dc..73022f6a39ab5 100644 --- a/docs/csharp/programming-guide/classes-and-structs/how-to-write-a-copy-constructor.md +++ b/docs/csharp/programming-guide/classes-and-structs/how-to-write-a-copy-constructor.md @@ -1,5 +1,6 @@ --- -title: "How to: Write a Copy Constructor (C# Programming Guide)" +title: "How to: Write a Copy Constructor - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# Language, copy constructor" diff --git a/docs/csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md b/docs/csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md index 48922acee2c6c..c2cbcea7193cf 100644 --- a/docs/csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md +++ b/docs/csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md @@ -1,5 +1,6 @@ --- -title: "Implicitly Typed Local Variables (C# Programming Guide)" +title: "Implicitly Typed Local Variables - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "implicitly-typed local variables [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/index.md b/docs/csharp/programming-guide/classes-and-structs/index.md index 6eaeec674bd84..995e07064caae 100644 --- a/docs/csharp/programming-guide/classes-and-structs/index.md +++ b/docs/csharp/programming-guide/classes-and-structs/index.md @@ -1,5 +1,6 @@ --- -title: "Classes and Structs (C# Programming Guide)" +title: "Classes and Structs - C# Programming Guide" +ms.custom: seodec18 description: Describes the use of classes and structures (structs) in C#. ms.date: 01/17/2016 helpviewer_keywords: diff --git a/docs/csharp/programming-guide/classes-and-structs/inheritance.md b/docs/csharp/programming-guide/classes-and-structs/inheritance.md index 93d28fe359328..7b34ff17b2fc6 100644 --- a/docs/csharp/programming-guide/classes-and-structs/inheritance.md +++ b/docs/csharp/programming-guide/classes-and-structs/inheritance.md @@ -1,5 +1,6 @@ --- -title: "Inheritance (C# Programming Guide)" +title: "Inheritance - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "abstract methods [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/instance-constructors.md b/docs/csharp/programming-guide/classes-and-structs/instance-constructors.md index 08dd7f0f6a7c9..58d4d0fa594f6 100644 --- a/docs/csharp/programming-guide/classes-and-structs/instance-constructors.md +++ b/docs/csharp/programming-guide/classes-and-structs/instance-constructors.md @@ -1,5 +1,6 @@ --- -title: "Instance Constructors (C# Programming Guide)" +title: "Instance Constructors - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "constructors [C#], instance constructors" diff --git a/docs/csharp/programming-guide/classes-and-structs/interface-properties.md b/docs/csharp/programming-guide/classes-and-structs/interface-properties.md index 748b7f4f97175..dddb983d9b8ee 100644 --- a/docs/csharp/programming-guide/classes-and-structs/interface-properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/interface-properties.md @@ -1,5 +1,6 @@ --- -title: "Interface Properties (C# Programming Guide)" +title: "Interface Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "properties [C#], on interfaces" diff --git a/docs/csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md b/docs/csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md index 493688619f3cf..d88fdd28b8191 100644 --- a/docs/csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md +++ b/docs/csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md @@ -1,5 +1,6 @@ --- -title: "Knowing When to Use Override and New Keywords (C# Programming Guide)" +title: "Knowing When to Use Override and New Keywords - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "override keyword [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/local-functions.md b/docs/csharp/programming-guide/classes-and-structs/local-functions.md index 71c599f414378..b936e16256a0c 100644 --- a/docs/csharp/programming-guide/classes-and-structs/local-functions.md +++ b/docs/csharp/programming-guide/classes-and-structs/local-functions.md @@ -1,5 +1,6 @@ --- -title: "Local functions (C# Programming Guide)" +title: "Local functions - C# Programming Guide" +ms.custom: seodec18 ms.date: 06/14/2017 helpviewer_keywords: - "local functions [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/members.md b/docs/csharp/programming-guide/classes-and-structs/members.md index 0206ed9e19acc..33bbaf59f59f6 100644 --- a/docs/csharp/programming-guide/classes-and-structs/members.md +++ b/docs/csharp/programming-guide/classes-and-structs/members.md @@ -1,5 +1,6 @@ --- -title: "Members (C# Programming Guide)" +title: "Members - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "types [C#], nested types" diff --git a/docs/csharp/programming-guide/classes-and-structs/methods.md b/docs/csharp/programming-guide/classes-and-structs/methods.md index e66b20945a4f1..f3504a6aba308 100644 --- a/docs/csharp/programming-guide/classes-and-structs/methods.md +++ b/docs/csharp/programming-guide/classes-and-structs/methods.md @@ -1,5 +1,6 @@ --- -title: "Methods (C# Programming Guide)" +title: "Methods - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "methods [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md b/docs/csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md index dc3b079ae74a9..450630b0d11b4 100644 --- a/docs/csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md +++ b/docs/csharp/programming-guide/classes-and-structs/named-and-optional-arguments.md @@ -1,5 +1,6 @@ --- -title: "Named and Optional Arguments (C# Programming Guide)" +title: "Named and Optional Arguments - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "namedParameter_CSharpKeyword" diff --git a/docs/csharp/programming-guide/classes-and-structs/nested-types.md b/docs/csharp/programming-guide/classes-and-structs/nested-types.md index 40a330304a919..4ff2edcb8adff 100644 --- a/docs/csharp/programming-guide/classes-and-structs/nested-types.md +++ b/docs/csharp/programming-guide/classes-and-structs/nested-types.md @@ -1,5 +1,6 @@ --- -title: "Nested Types (C# Programming Guide)" +title: "Nested Types - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/10/2017 helpviewer_keywords: - "nested types [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md b/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md index 3b989d563d26b..5c57f8ded8b12 100644 --- a/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md +++ b/docs/csharp/programming-guide/classes-and-structs/object-and-collection-initializers.md @@ -1,5 +1,6 @@ --- -title: "Object and Collection Initializers (C# Programming Guide)" +title: "Object and Collection Initializers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "object initializers [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/objects.md b/docs/csharp/programming-guide/classes-and-structs/objects.md index 1983f766d3952..1e33c00ffe2e1 100644 --- a/docs/csharp/programming-guide/classes-and-structs/objects.md +++ b/docs/csharp/programming-guide/classes-and-structs/objects.md @@ -1,5 +1,6 @@ --- -title: "Objects (C# Programming Guide)" +title: "Objects - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "objects [C#], about objects" diff --git a/docs/csharp/programming-guide/classes-and-structs/partial-classes-and-methods.md b/docs/csharp/programming-guide/classes-and-structs/partial-classes-and-methods.md index 5ec7c6e0d2934..28d32fcafc4ab 100644 --- a/docs/csharp/programming-guide/classes-and-structs/partial-classes-and-methods.md +++ b/docs/csharp/programming-guide/classes-and-structs/partial-classes-and-methods.md @@ -1,5 +1,6 @@ --- -title: "Partial Classes and Methods (C# Programming Guide)" +title: "Partial Classes and Methods - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "partial methods [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/passing-parameters.md b/docs/csharp/programming-guide/classes-and-structs/passing-parameters.md index d6f005182321d..64fcf67e383b7 100644 --- a/docs/csharp/programming-guide/classes-and-structs/passing-parameters.md +++ b/docs/csharp/programming-guide/classes-and-structs/passing-parameters.md @@ -1,5 +1,6 @@ --- -title: "Passing Parameters (C# Programming Guide)" +title: "Passing Parameters - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "parameters [C#], passing" diff --git a/docs/csharp/programming-guide/classes-and-structs/passing-reference-type-parameters.md b/docs/csharp/programming-guide/classes-and-structs/passing-reference-type-parameters.md index 556d66e0041ce..8639cc55be787 100644 --- a/docs/csharp/programming-guide/classes-and-structs/passing-reference-type-parameters.md +++ b/docs/csharp/programming-guide/classes-and-structs/passing-reference-type-parameters.md @@ -1,5 +1,6 @@ --- -title: "Passing Reference-Type Parameters (C# Programming Guide)" +title: "Passing Reference-Type Parameters - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "method parameters [C#], reference types" diff --git a/docs/csharp/programming-guide/classes-and-structs/passing-value-type-parameters.md b/docs/csharp/programming-guide/classes-and-structs/passing-value-type-parameters.md index 94a30e96221e9..b41084c9a4dcc 100644 --- a/docs/csharp/programming-guide/classes-and-structs/passing-value-type-parameters.md +++ b/docs/csharp/programming-guide/classes-and-structs/passing-value-type-parameters.md @@ -1,5 +1,6 @@ --- -title: "Passing Value-Type Parameters (C# Programming Guide)" +title: "Passing Value-Type Parameters - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "method parameters [C#], value types" diff --git a/docs/csharp/programming-guide/classes-and-structs/polymorphism.md b/docs/csharp/programming-guide/classes-and-structs/polymorphism.md index 5b24bf9c304a5..0ef3a20a4aa78 100644 --- a/docs/csharp/programming-guide/classes-and-structs/polymorphism.md +++ b/docs/csharp/programming-guide/classes-and-structs/polymorphism.md @@ -1,5 +1,6 @@ --- -title: "Polymorphism (C# Programming Guide)" +title: "Polymorphism - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, polymorphism" diff --git a/docs/csharp/programming-guide/classes-and-structs/private-constructors.md b/docs/csharp/programming-guide/classes-and-structs/private-constructors.md index a71326f5c0497..726a9ff580e80 100644 --- a/docs/csharp/programming-guide/classes-and-structs/private-constructors.md +++ b/docs/csharp/programming-guide/classes-and-structs/private-constructors.md @@ -1,5 +1,6 @@ --- -title: "Private Constructors (C# Programming Guide)" +title: "Private Constructors - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, private constructors" diff --git a/docs/csharp/programming-guide/classes-and-structs/properties.md b/docs/csharp/programming-guide/classes-and-structs/properties.md index 4121e6c8cf7ef..19034f8d508a7 100644 --- a/docs/csharp/programming-guide/classes-and-structs/properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/properties.md @@ -1,5 +1,6 @@ --- -title: "Properties (C# Programming Guide)" +title: "Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 03/10/2017 f1_keywords: - "cs.properties" diff --git a/docs/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility.md b/docs/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility.md index 3a5c8dde3fca6..f889bb09a077f 100644 --- a/docs/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility.md +++ b/docs/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility.md @@ -1,5 +1,6 @@ --- -title: "Restricting Accessor Accessibility (C# Programming Guide)" +title: "Restricting Accessor Accessibility - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "read-only properties [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md b/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md index 235e1af31f5a6..9bab7c624e81c 100644 --- a/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md +++ b/docs/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members.md @@ -1,5 +1,6 @@ --- -title: "Static Classes and Static Class Members (C# Programming Guide)" +title: "Static Classes and Static Class Members - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, static members" diff --git a/docs/csharp/programming-guide/classes-and-structs/static-constructors.md b/docs/csharp/programming-guide/classes-and-structs/static-constructors.md index b7b912b4d4cf5..4f56736451103 100644 --- a/docs/csharp/programming-guide/classes-and-structs/static-constructors.md +++ b/docs/csharp/programming-guide/classes-and-structs/static-constructors.md @@ -1,5 +1,6 @@ --- -title: "Static Constructors (C# Programming Guide)" +title: "Static Constructors - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "static constructors [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/structs.md b/docs/csharp/programming-guide/classes-and-structs/structs.md index a6b1b00c25955..b8917578a939c 100644 --- a/docs/csharp/programming-guide/classes-and-structs/structs.md +++ b/docs/csharp/programming-guide/classes-and-structs/structs.md @@ -1,5 +1,6 @@ --- -title: "Structs (C# Programming Guide)" +title: "Structs - C# Programming Guide" +ms.custom: seodec18 ms.date: 08/21/2018 helpviewer_keywords: - "C# language, structs" diff --git a/docs/csharp/programming-guide/classes-and-structs/using-constructors.md b/docs/csharp/programming-guide/classes-and-structs/using-constructors.md index 28ee3cef4933b..bb5e90bc44e9b 100644 --- a/docs/csharp/programming-guide/classes-and-structs/using-constructors.md +++ b/docs/csharp/programming-guide/classes-and-structs/using-constructors.md @@ -1,5 +1,6 @@ --- -title: "Using Constructors (C# Programming Guide)" +title: "Using Constructors - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "constructors [C#], about constructors" diff --git a/docs/csharp/programming-guide/classes-and-structs/using-properties.md b/docs/csharp/programming-guide/classes-and-structs/using-properties.md index fcd65bd21caf0..14a0821663a96 100644 --- a/docs/csharp/programming-guide/classes-and-structs/using-properties.md +++ b/docs/csharp/programming-guide/classes-and-structs/using-properties.md @@ -1,5 +1,6 @@ --- -title: "Using Properties (C# Programming Guide)" +title: "Using Properties - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "set accessor [C#]" diff --git a/docs/csharp/programming-guide/classes-and-structs/using-structs.md b/docs/csharp/programming-guide/classes-and-structs/using-structs.md index 7ad094f342657..edf8d3631136a 100644 --- a/docs/csharp/programming-guide/classes-and-structs/using-structs.md +++ b/docs/csharp/programming-guide/classes-and-structs/using-structs.md @@ -1,5 +1,6 @@ --- -title: "Using Structs (C# Programming Guide)" +title: "Using Structs - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "structs [C#], using" diff --git a/docs/csharp/programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md b/docs/csharp/programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md index 76cf5232e88f4..828fcb88a86f2 100644 --- a/docs/csharp/programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md +++ b/docs/csharp/programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md @@ -1,5 +1,6 @@ --- -title: "Versioning with the Override and New Keywords (C# Programming Guide)" +title: "Versioning with the Override and New Keywords - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, versioning" diff --git a/docs/csharp/programming-guide/concepts/async/index.md b/docs/csharp/programming-guide/concepts/async/index.md index 5e5e2797e71f0..b2405afb6a44f 100644 --- a/docs/csharp/programming-guide/concepts/async/index.md +++ b/docs/csharp/programming-guide/concepts/async/index.md @@ -6,7 +6,7 @@ ms.assetid: 9bcf896a-5826-4189-8c1a-3e35fa08243a # Asynchronous programming with async and await (C#) You can avoid performance bottlenecks and enhance the overall responsiveness of your application by using asynchronous programming. However, traditional techniques for writing asynchronous applications can be complicated, making them difficult to write, debug, and maintain. -[C# 5](../../../whats-new/index.md#previous-versions) introduced a simplified approach, async programming, that leverages asynchronous support in the .NET Framework 4.5 and higher, .NET Core, and the Windows Runtime. The compiler does the difficult work that the developer used to do, and your application retains a logical structure that resembles synchronous code. As a result, you get all the advantages of asynchronous programming with a fraction of the effort. +[C# 5](../../../whats-new/csharp-version-history.md#c-version-50) introduced a simplified approach, async programming, that leverages asynchronous support in the .NET Framework 4.5 and higher, .NET Core, and the Windows Runtime. The compiler does the difficult work that the developer used to do, and your application retains a logical structure that resembles synchronous code. As a result, you get all the advantages of asynchronous programming with a fraction of the effort. This topic provides an overview of when and how to use async programming and includes links to support topics that contain details and examples. diff --git a/docs/csharp/programming-guide/delegates/delegates-with-named-vs-anonymous-methods.md b/docs/csharp/programming-guide/delegates/delegates-with-named-vs-anonymous-methods.md index 7e12a8d893924..696b21d585a21 100644 --- a/docs/csharp/programming-guide/delegates/delegates-with-named-vs-anonymous-methods.md +++ b/docs/csharp/programming-guide/delegates/delegates-with-named-vs-anonymous-methods.md @@ -1,5 +1,6 @@ --- -title: "Delegates with Named vs. Anonymous Methods (C# Programming Guide)" +title: "Delegates with Named vs. Anonymous Methods - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "delegates [C#], with named vs. anonymous methods" diff --git a/docs/csharp/programming-guide/delegates/how-to-combine-delegates-multicast-delegates.md b/docs/csharp/programming-guide/delegates/how-to-combine-delegates-multicast-delegates.md index dd03e587175e3..815cc759d9a76 100644 --- a/docs/csharp/programming-guide/delegates/how-to-combine-delegates-multicast-delegates.md +++ b/docs/csharp/programming-guide/delegates/how-to-combine-delegates-multicast-delegates.md @@ -1,5 +1,6 @@ --- -title: "How to: Combine Delegates (Multicast Delegates)(C# Programming Guide)" +title: "How to: Combine Delegates (Multicast Delegates)- C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "delegates [C#], combining" diff --git a/docs/csharp/programming-guide/delegates/how-to-declare-instantiate-and-use-a-delegate.md b/docs/csharp/programming-guide/delegates/how-to-declare-instantiate-and-use-a-delegate.md index c21479c8b67dd..4698e066c06fe 100644 --- a/docs/csharp/programming-guide/delegates/how-to-declare-instantiate-and-use-a-delegate.md +++ b/docs/csharp/programming-guide/delegates/how-to-declare-instantiate-and-use-a-delegate.md @@ -1,5 +1,6 @@ --- -title: "How to: Declare, Instantiate, and Use a Delegate (C# Programming Guide)" +title: "How to: Declare, Instantiate, and Use a Delegate - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "delegates [C#], declaring and instantiating" diff --git a/docs/csharp/programming-guide/delegates/index.md b/docs/csharp/programming-guide/delegates/index.md index 375ff72bfe181..0b0d4060f4801 100644 --- a/docs/csharp/programming-guide/delegates/index.md +++ b/docs/csharp/programming-guide/delegates/index.md @@ -1,5 +1,6 @@ --- -title: "Delegates (C# Programming Guide)" +title: "Delegates - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, delegates" diff --git a/docs/csharp/programming-guide/delegates/using-delegates.md b/docs/csharp/programming-guide/delegates/using-delegates.md index 2e3a7e042dcce..6ab7405bc5ede 100644 --- a/docs/csharp/programming-guide/delegates/using-delegates.md +++ b/docs/csharp/programming-guide/delegates/using-delegates.md @@ -1,5 +1,6 @@ --- -title: "Using Delegates (C# Programming Guide)" +title: "Using Delegates - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "delegates [C#], how to use" diff --git a/docs/csharp/programming-guide/enumeration-types.md b/docs/csharp/programming-guide/enumeration-types.md index 4d98c1fdf0d59..085fee827d6a9 100644 --- a/docs/csharp/programming-guide/enumeration-types.md +++ b/docs/csharp/programming-guide/enumeration-types.md @@ -1,5 +1,6 @@ --- -title: "Enumeration types (C# Programming Guide)" +title: "Enumeration types - C# Programming Guide" +ms.custom: seodec18 ms.date: "09/10/2017" helpviewer_keywords: - "enumerations [C#]" diff --git a/docs/csharp/programming-guide/events/how-to-implement-custom-event-accessors.md b/docs/csharp/programming-guide/events/how-to-implement-custom-event-accessors.md index b61866903da1a..2cf90245d074e 100644 --- a/docs/csharp/programming-guide/events/how-to-implement-custom-event-accessors.md +++ b/docs/csharp/programming-guide/events/how-to-implement-custom-event-accessors.md @@ -1,5 +1,6 @@ --- -title: "How to: Implement Custom Event Accessors (C# Programming Guide)" +title: "How to: Implement Custom Event Accessors - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "accessors [C#], event accessors" diff --git a/docs/csharp/programming-guide/events/how-to-implement-interface-events.md b/docs/csharp/programming-guide/events/how-to-implement-interface-events.md index adb45a4014027..8b10ab5a09ad2 100644 --- a/docs/csharp/programming-guide/events/how-to-implement-interface-events.md +++ b/docs/csharp/programming-guide/events/how-to-implement-interface-events.md @@ -1,5 +1,6 @@ --- -title: "How to: Implement Interface Events (C# Programming Guide)" +title: "How to: Implement Interface Events - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "interfaces [C#], event implementation in classes" diff --git a/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md b/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md index 5a027d269620f..7949b0e6c4ea1 100644 --- a/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md +++ b/docs/csharp/programming-guide/events/how-to-publish-events-that-conform-to-net-framework-guidelines.md @@ -1,5 +1,6 @@ --- -title: "How to: Publish Events that Conform to .NET Framework Guidelines (C# Programming Guide)" +title: "How to: Publish Events that Conform to .NET Framework Guidelines - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "events [C#], implementation guidelines" diff --git a/docs/csharp/programming-guide/events/how-to-raise-base-class-events-in-derived-classes.md b/docs/csharp/programming-guide/events/how-to-raise-base-class-events-in-derived-classes.md index e499362f9d7be..ff601aa97d656 100644 --- a/docs/csharp/programming-guide/events/how-to-raise-base-class-events-in-derived-classes.md +++ b/docs/csharp/programming-guide/events/how-to-raise-base-class-events-in-derived-classes.md @@ -1,5 +1,6 @@ --- -title: "How to: Raise Base Class Events in Derived Classes (C# Programming Guide)" +title: "How to: Raise Base Class Events in Derived Classes - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "events [C#], in derived classes" diff --git a/docs/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events.md b/docs/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events.md index 7f1634e4f48e6..04c7b58cd0891 100644 --- a/docs/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events.md +++ b/docs/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events.md @@ -1,5 +1,6 @@ --- -title: "How to: Subscribe to and Unsubscribe from Events (C# Programming Guide)" +title: "How to: Subscribe to and Unsubscribe from Events - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "event handlers [C#], creating" diff --git a/docs/csharp/programming-guide/events/how-to-use-a-dictionary-to-store-event-instances.md b/docs/csharp/programming-guide/events/how-to-use-a-dictionary-to-store-event-instances.md index 91939d39ac8c0..27af7fc41e842 100644 --- a/docs/csharp/programming-guide/events/how-to-use-a-dictionary-to-store-event-instances.md +++ b/docs/csharp/programming-guide/events/how-to-use-a-dictionary-to-store-event-instances.md @@ -1,5 +1,6 @@ --- -title: "How to: Use a Dictionary to Store Event Instances (C# Programming Guide)" +title: "How to: Use a Dictionary to Store Event Instances - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "events [C#], storing instances in a Dictionary" diff --git a/docs/csharp/programming-guide/events/index.md b/docs/csharp/programming-guide/events/index.md index 77adf9087b281..9b5b80cfb4832 100644 --- a/docs/csharp/programming-guide/events/index.md +++ b/docs/csharp/programming-guide/events/index.md @@ -1,5 +1,6 @@ --- -title: "Events (C# Programming Guide)" +title: "Events - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "classes [C#], events" diff --git a/docs/csharp/programming-guide/exceptions/compiler-generated-exceptions.md b/docs/csharp/programming-guide/exceptions/compiler-generated-exceptions.md index 577630f772497..d25f9082883e5 100644 --- a/docs/csharp/programming-guide/exceptions/compiler-generated-exceptions.md +++ b/docs/csharp/programming-guide/exceptions/compiler-generated-exceptions.md @@ -1,5 +1,6 @@ --- -title: "Compiler-Generated Exceptions (C# Programming Guide)" +title: "Compiler-Generated Exceptions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "exceptions [C#], compiler-generated" diff --git a/docs/csharp/programming-guide/exceptions/creating-and-throwing-exceptions.md b/docs/csharp/programming-guide/exceptions/creating-and-throwing-exceptions.md index 7b04732826657..1ded1582856eb 100644 --- a/docs/csharp/programming-guide/exceptions/creating-and-throwing-exceptions.md +++ b/docs/csharp/programming-guide/exceptions/creating-and-throwing-exceptions.md @@ -1,5 +1,6 @@ --- -title: "Creating and Throwing Exceptions (C# Programming Guide)" +title: "Creating and Throwing Exceptions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "catching exceptions [C#]" diff --git a/docs/csharp/programming-guide/exceptions/exception-handling.md b/docs/csharp/programming-guide/exceptions/exception-handling.md index 812cabc29a91c..c7693fd315af5 100644 --- a/docs/csharp/programming-guide/exceptions/exception-handling.md +++ b/docs/csharp/programming-guide/exceptions/exception-handling.md @@ -1,5 +1,6 @@ --- -title: "Exception Handling (C# Programming Guide)" +title: "Exception Handling - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "exception handling [C#], about exception handling" diff --git a/docs/csharp/programming-guide/exceptions/how-to-execute-cleanup-code-using-finally.md b/docs/csharp/programming-guide/exceptions/how-to-execute-cleanup-code-using-finally.md index 87e1c187c896e..add00cd5fc8da 100644 --- a/docs/csharp/programming-guide/exceptions/how-to-execute-cleanup-code-using-finally.md +++ b/docs/csharp/programming-guide/exceptions/how-to-execute-cleanup-code-using-finally.md @@ -1,5 +1,6 @@ --- -title: "How to: Execute Cleanup Code Using finally (C# Programming Guide)" +title: "How to: Execute Cleanup Code Using finally - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "try/finally blocks [C#]" diff --git a/docs/csharp/programming-guide/exceptions/how-to-handle-an-exception-using-try-catch.md b/docs/csharp/programming-guide/exceptions/how-to-handle-an-exception-using-try-catch.md index 7753a9348c8b0..e9e7ce1646470 100644 --- a/docs/csharp/programming-guide/exceptions/how-to-handle-an-exception-using-try-catch.md +++ b/docs/csharp/programming-guide/exceptions/how-to-handle-an-exception-using-try-catch.md @@ -1,5 +1,6 @@ --- -title: "How to: Handle an Exception Using try-catch (C# Programming Guide)" +title: "How to: Handle an Exception Using try-catch - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "exception handling [C#], try/catch blocks" diff --git a/docs/csharp/programming-guide/exceptions/index.md b/docs/csharp/programming-guide/exceptions/index.md index a5fa5c45b85af..872549d36c6d4 100644 --- a/docs/csharp/programming-guide/exceptions/index.md +++ b/docs/csharp/programming-guide/exceptions/index.md @@ -1,5 +1,6 @@ --- -title: "Exceptions and Exception Handling (C# Programming Guide)" +title: "Exceptions and Exception Handling - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "exception handling [C#]" diff --git a/docs/csharp/programming-guide/exceptions/using-exceptions.md b/docs/csharp/programming-guide/exceptions/using-exceptions.md index dee09827c4436..dc917179cfaca 100644 --- a/docs/csharp/programming-guide/exceptions/using-exceptions.md +++ b/docs/csharp/programming-guide/exceptions/using-exceptions.md @@ -1,5 +1,6 @@ --- -title: "Using Exceptions (C# Programming Guide)" +title: "Using Exceptions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "exception handling [C#], about exception handling" diff --git a/docs/csharp/programming-guide/file-system/how-to-copy-delete-and-move-files-and-folders.md b/docs/csharp/programming-guide/file-system/how-to-copy-delete-and-move-files-and-folders.md index 7672d08364c09..903fb7e657433 100644 --- a/docs/csharp/programming-guide/file-system/how-to-copy-delete-and-move-files-and-folders.md +++ b/docs/csharp/programming-guide/file-system/how-to-copy-delete-and-move-files-and-folders.md @@ -1,5 +1,6 @@ --- -title: "How to: Copy, Delete, and Move Files and Folders (C# Programming Guide)" +title: "How to: Copy, Delete, and Move Files and Folders - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "I/O [C#]" diff --git a/docs/csharp/programming-guide/file-system/how-to-create-a-file-or-folder.md b/docs/csharp/programming-guide/file-system/how-to-create-a-file-or-folder.md index ef0ee92e1010c..552fe1bbb115a 100644 --- a/docs/csharp/programming-guide/file-system/how-to-create-a-file-or-folder.md +++ b/docs/csharp/programming-guide/file-system/how-to-create-a-file-or-folder.md @@ -1,5 +1,6 @@ --- -title: "How to: Create a File or Folder (C# Programming Guide)" +title: "How to: Create a File or Folder - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "folders [C#]" diff --git a/docs/csharp/programming-guide/file-system/how-to-get-information-about-files-folders-and-drives.md b/docs/csharp/programming-guide/file-system/how-to-get-information-about-files-folders-and-drives.md index 45275a35f2f97..77e9c9fca1870 100644 --- a/docs/csharp/programming-guide/file-system/how-to-get-information-about-files-folders-and-drives.md +++ b/docs/csharp/programming-guide/file-system/how-to-get-information-about-files-folders-and-drives.md @@ -1,5 +1,6 @@ --- -title: "How to: Get Information About Files, Folders, and Drives (C# Programming Guide)" +title: "How to: Get Information About Files, Folders, and Drives - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "files [C#], getting information about" diff --git a/docs/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree.md b/docs/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree.md index 134acc5b8c1ec..ee7446778a875 100644 --- a/docs/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree.md +++ b/docs/csharp/programming-guide/file-system/how-to-iterate-through-a-directory-tree.md @@ -1,5 +1,6 @@ --- -title: "How to: Iterate Through a Directory Tree (C# Programming Guide)" +title: "How to: Iterate Through a Directory Tree - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "iterating through folders [C#]" diff --git a/docs/csharp/programming-guide/file-system/how-to-provide-a-progress-dialog-box-for-file-operations.md b/docs/csharp/programming-guide/file-system/how-to-provide-a-progress-dialog-box-for-file-operations.md index 45c1bc879b56e..3c2bae20e787a 100644 --- a/docs/csharp/programming-guide/file-system/how-to-provide-a-progress-dialog-box-for-file-operations.md +++ b/docs/csharp/programming-guide/file-system/how-to-provide-a-progress-dialog-box-for-file-operations.md @@ -1,5 +1,6 @@ --- -title: "How to: Provide a Progress Dialog Box for File Operations (C# Programming Guide)" +title: "How to: Provide a Progress Dialog Box for File Operations - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "progress dialog [C#]" diff --git a/docs/csharp/programming-guide/file-system/how-to-read-from-a-text-file.md b/docs/csharp/programming-guide/file-system/how-to-read-from-a-text-file.md index 470f14cbd2664..a0f6a2b7013bf 100644 --- a/docs/csharp/programming-guide/file-system/how-to-read-from-a-text-file.md +++ b/docs/csharp/programming-guide/file-system/how-to-read-from-a-text-file.md @@ -1,5 +1,6 @@ --- -title: "How to: Read From a Text File (C# Programming Guide)" +title: "How to: Read From a Text File - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "StreamReader.ReadToEnd" diff --git a/docs/csharp/programming-guide/file-system/how-to-write-to-a-text-file.md b/docs/csharp/programming-guide/file-system/how-to-write-to-a-text-file.md index 2ae3b87f42485..31bf2d3836363 100644 --- a/docs/csharp/programming-guide/file-system/how-to-write-to-a-text-file.md +++ b/docs/csharp/programming-guide/file-system/how-to-write-to-a-text-file.md @@ -1,5 +1,6 @@ --- -title: "How to: Write to a Text File (C# Programming Guide)" +title: "How to: Write to a Text File - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "TextWriter.WriteLine" diff --git a/docs/csharp/programming-guide/file-system/index.md b/docs/csharp/programming-guide/file-system/index.md index 927db86564817..2fe48428b70bc 100644 --- a/docs/csharp/programming-guide/file-system/index.md +++ b/docs/csharp/programming-guide/file-system/index.md @@ -1,5 +1,6 @@ --- -title: "File System and the Registry (C# Programming Guide)" +title: "File System and the Registry - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "file system [C#]" diff --git a/docs/csharp/programming-guide/generics/benefits-of-generics.md b/docs/csharp/programming-guide/generics/benefits-of-generics.md index 6ace637dbf9c3..8866f5d3be781 100644 --- a/docs/csharp/programming-guide/generics/benefits-of-generics.md +++ b/docs/csharp/programming-guide/generics/benefits-of-generics.md @@ -1,5 +1,6 @@ --- -title: "Benefits of Generics (C# Programming Guide)" +title: "Benefits of Generics - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], benefits" diff --git a/docs/csharp/programming-guide/generics/constraints-on-type-parameters.md b/docs/csharp/programming-guide/generics/constraints-on-type-parameters.md index 814b17f3dddb5..00905685134e1 100644 --- a/docs/csharp/programming-guide/generics/constraints-on-type-parameters.md +++ b/docs/csharp/programming-guide/generics/constraints-on-type-parameters.md @@ -1,5 +1,6 @@ --- -title: "Constraints on Type Parameters (C# Programming Guide)" +title: "Constraints on Type Parameters - C# Programming Guide" +ms.custom: seodec18 ms.date: 04/12/2018 helpviewer_keywords: - "generics [C#], type constraints" diff --git a/docs/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics.md b/docs/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics.md index 6d2672996ffab..5443c488fbe99 100644 --- a/docs/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics.md +++ b/docs/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics.md @@ -1,5 +1,6 @@ --- -title: "Differences Between C++ Templates and C# Generics (C# Programming Guide)" +title: "Differences Between C++ Templates and C# Generics - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], vs. C++ templates" diff --git a/docs/csharp/programming-guide/generics/generic-classes.md b/docs/csharp/programming-guide/generics/generic-classes.md index 10b86a50bb496..9ddb95681442a 100644 --- a/docs/csharp/programming-guide/generics/generic-classes.md +++ b/docs/csharp/programming-guide/generics/generic-classes.md @@ -1,5 +1,6 @@ --- -title: "Generic Classes (C# Programming Guide)" +title: "Generic Classes - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, generic classes" diff --git a/docs/csharp/programming-guide/generics/generic-delegates.md b/docs/csharp/programming-guide/generics/generic-delegates.md index 91ce9ddc9c94f..592c8428ee481 100644 --- a/docs/csharp/programming-guide/generics/generic-delegates.md +++ b/docs/csharp/programming-guide/generics/generic-delegates.md @@ -1,5 +1,6 @@ --- -title: "Generic Delegates (C# Programming Guide)" +title: "Generic Delegates - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], delegates" diff --git a/docs/csharp/programming-guide/generics/generic-interfaces.md b/docs/csharp/programming-guide/generics/generic-interfaces.md index 9a925dae3d6e4..80ab96b9217db 100644 --- a/docs/csharp/programming-guide/generics/generic-interfaces.md +++ b/docs/csharp/programming-guide/generics/generic-interfaces.md @@ -1,5 +1,6 @@ --- -title: "Generic Interfaces (C# Programming Guide)" +title: "Generic Interfaces - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, generic interfaces" diff --git a/docs/csharp/programming-guide/generics/generic-methods.md b/docs/csharp/programming-guide/generics/generic-methods.md index c26db56099b46..79e0329cc03cc 100644 --- a/docs/csharp/programming-guide/generics/generic-methods.md +++ b/docs/csharp/programming-guide/generics/generic-methods.md @@ -1,5 +1,6 @@ --- -title: "Generic Methods (C# Programming Guide)" +title: "Generic Methods - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], methods" diff --git a/docs/csharp/programming-guide/generics/generic-type-parameters.md b/docs/csharp/programming-guide/generics/generic-type-parameters.md index 6393f45ccdaaa..dee9a47b8851b 100644 --- a/docs/csharp/programming-guide/generics/generic-type-parameters.md +++ b/docs/csharp/programming-guide/generics/generic-type-parameters.md @@ -1,5 +1,6 @@ --- -title: "Generic Type Parameters (C# Programming Guide)" +title: "Generic Type Parameters - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], type parameters" diff --git a/docs/csharp/programming-guide/generics/generics-and-arrays.md b/docs/csharp/programming-guide/generics/generics-and-arrays.md index 6e89d3474ba9e..d23cdb7d8476b 100644 --- a/docs/csharp/programming-guide/generics/generics-and-arrays.md +++ b/docs/csharp/programming-guide/generics/generics-and-arrays.md @@ -1,5 +1,6 @@ --- -title: "Generics and Arrays (C# Programming Guide)" +title: "Generics and Arrays - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], arrays" diff --git a/docs/csharp/programming-guide/generics/generics-and-attributes.md b/docs/csharp/programming-guide/generics/generics-and-attributes.md index 782ebf57e14f5..b60e2f3940814 100644 --- a/docs/csharp/programming-guide/generics/generics-and-attributes.md +++ b/docs/csharp/programming-guide/generics/generics-and-attributes.md @@ -1,5 +1,6 @@ --- -title: "Generics and Attributes (C# Programming Guide)" +title: "Generics and Attributes - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], attributes" diff --git a/docs/csharp/programming-guide/generics/generics-and-reflection.md b/docs/csharp/programming-guide/generics/generics-and-reflection.md index 6c5997804bc84..f4b3c69878548 100644 --- a/docs/csharp/programming-guide/generics/generics-and-reflection.md +++ b/docs/csharp/programming-guide/generics/generics-and-reflection.md @@ -1,5 +1,6 @@ --- -title: "Generics and Reflection (C# Programming Guide)" +title: "Generics and Reflection - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], reflection" diff --git a/docs/csharp/programming-guide/generics/generics-in-the-run-time.md b/docs/csharp/programming-guide/generics/generics-in-the-run-time.md index 57d2d5b2743ea..7ae3a07056cb7 100644 --- a/docs/csharp/programming-guide/generics/generics-in-the-run-time.md +++ b/docs/csharp/programming-guide/generics/generics-in-the-run-time.md @@ -1,5 +1,6 @@ --- -title: "Generics in the Run Time (C# Programming Guide)" +title: "Generics in the Run Time - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], at run time" diff --git a/docs/csharp/programming-guide/generics/index.md b/docs/csharp/programming-guide/generics/index.md index ec5a10df05f83..48fab4687c69b 100644 --- a/docs/csharp/programming-guide/generics/index.md +++ b/docs/csharp/programming-guide/generics/index.md @@ -1,5 +1,6 @@ --- -title: "Generics (C# Programming Guide)" +title: "Generics - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, generics" diff --git a/docs/csharp/programming-guide/generics/introduction-to-generics.md b/docs/csharp/programming-guide/generics/introduction-to-generics.md index 30e656aa1d331..49e651a26d730 100644 --- a/docs/csharp/programming-guide/generics/introduction-to-generics.md +++ b/docs/csharp/programming-guide/generics/introduction-to-generics.md @@ -1,5 +1,6 @@ --- -title: "Introduction to Generics (C# Programming Guide)" +title: "Introduction to Generics - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "generics [C#], about generics" diff --git a/docs/csharp/programming-guide/indexers/comparison-between-properties-and-indexers.md b/docs/csharp/programming-guide/indexers/comparison-between-properties-and-indexers.md index e41a0912d7ec0..88c4d93d36f99 100644 --- a/docs/csharp/programming-guide/indexers/comparison-between-properties-and-indexers.md +++ b/docs/csharp/programming-guide/indexers/comparison-between-properties-and-indexers.md @@ -1,5 +1,6 @@ --- -title: "Comparison Between Properties and Indexers (C# Programming Guide)" +title: "Comparison Between Properties and Indexers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "properties [C#], vs. indexers" diff --git a/docs/csharp/programming-guide/indexers/index.md b/docs/csharp/programming-guide/indexers/index.md index fcb7be827348c..a1080c455a2da 100644 --- a/docs/csharp/programming-guide/indexers/index.md +++ b/docs/csharp/programming-guide/indexers/index.md @@ -1,5 +1,6 @@ --- -title: "Indexers (C# Programming Guide)" +title: "Indexers - C# Programming Guide" +ms.custom: seodec18 ms.date: 03/10/2017 f1_keywords: - "cs.indexers" diff --git a/docs/csharp/programming-guide/indexers/indexers-in-interfaces.md b/docs/csharp/programming-guide/indexers/indexers-in-interfaces.md index 90a25a9fd5e8a..18d1b28c60d16 100644 --- a/docs/csharp/programming-guide/indexers/indexers-in-interfaces.md +++ b/docs/csharp/programming-guide/indexers/indexers-in-interfaces.md @@ -1,5 +1,6 @@ --- -title: "Indexers in Interfaces (C# Programming Guide)" +title: "Indexers in Interfaces - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "indexers [C#], in interfaces" diff --git a/docs/csharp/programming-guide/indexers/using-indexers.md b/docs/csharp/programming-guide/indexers/using-indexers.md index a8160f71551bc..3b0e7683d9e9f 100644 --- a/docs/csharp/programming-guide/indexers/using-indexers.md +++ b/docs/csharp/programming-guide/indexers/using-indexers.md @@ -1,5 +1,6 @@ --- -title: "Using Indexers (C# Programming Guide)" +title: "Using Indexers - C# Programming Guide" +ms.custom: seodec18 ms.date: 10/03/2018 helpviewer_keywords: - "indexers [C#], about indexers" diff --git a/docs/csharp/programming-guide/inside-a-program/coding-conventions.md b/docs/csharp/programming-guide/inside-a-program/coding-conventions.md index 7ad2418a82001..bc2dc7339c7ae 100644 --- a/docs/csharp/programming-guide/inside-a-program/coding-conventions.md +++ b/docs/csharp/programming-guide/inside-a-program/coding-conventions.md @@ -1,5 +1,6 @@ --- -title: "C# Coding Conventions (C# Programming Guide)" +title: "C# Coding Conventions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "coding conventions, C#" diff --git a/docs/csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program.md b/docs/csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program.md index 29a70627d5e6f..19f017221ce82 100644 --- a/docs/csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program.md +++ b/docs/csharp/programming-guide/inside-a-program/general-structure-of-a-csharp-program.md @@ -1,5 +1,6 @@ --- -title: "General Structure of a C# Program (C# Programming Guide)" +title: "General Structure of a C# Program - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, program structure" diff --git a/docs/csharp/programming-guide/inside-a-program/hello-world-your-first-program.md b/docs/csharp/programming-guide/inside-a-program/hello-world-your-first-program.md index 91a25aff3ff3c..eddcc49b8b55b 100644 --- a/docs/csharp/programming-guide/inside-a-program/hello-world-your-first-program.md +++ b/docs/csharp/programming-guide/inside-a-program/hello-world-your-first-program.md @@ -1,5 +1,6 @@ --- -title: "Hello World -- Your First Program (C# Programming Guide)" +title: "Hello World -- Your First Program - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "cs.program" diff --git a/docs/csharp/programming-guide/interfaces/explicit-interface-implementation.md b/docs/csharp/programming-guide/interfaces/explicit-interface-implementation.md index c4072cfb7b3cf..b42c366baf6d9 100644 --- a/docs/csharp/programming-guide/interfaces/explicit-interface-implementation.md +++ b/docs/csharp/programming-guide/interfaces/explicit-interface-implementation.md @@ -1,5 +1,6 @@ --- -title: "Explicit Interface Implementation (C# Programming Guide)" +title: "Explicit Interface Implementation - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "explicit interfaces [C#]" diff --git a/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-interface-members.md b/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-interface-members.md index 155bd9388dfd3..522d1f8abb6d7 100644 --- a/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-interface-members.md +++ b/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-interface-members.md @@ -1,5 +1,6 @@ --- -title: "How to: Explicitly Implement Interface Members (C# Programming Guide)" +title: "How to: Explicitly Implement Interface Members - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "interfaces [C#], explicitly implementing" diff --git a/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-members-of-two-interfaces.md b/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-members-of-two-interfaces.md index 61404282be6df..d8a6ecebd8fb5 100644 --- a/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-members-of-two-interfaces.md +++ b/docs/csharp/programming-guide/interfaces/how-to-explicitly-implement-members-of-two-interfaces.md @@ -1,5 +1,6 @@ --- -title: "How to: Explicitly Implement Members of Two Interfaces (C# Programming Guide)" +title: "How to: Explicitly Implement Members of Two Interfaces - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "inheritance [C#], explicitly implementing interface members" diff --git a/docs/csharp/programming-guide/interfaces/index.md b/docs/csharp/programming-guide/interfaces/index.md index 2613ceb23a7f7..3eb0edc7f90d2 100644 --- a/docs/csharp/programming-guide/interfaces/index.md +++ b/docs/csharp/programming-guide/interfaces/index.md @@ -1,5 +1,6 @@ --- -title: "Interfaces (C# Programming Guide)" +title: "Interfaces - C# Programming Guide" +ms.custom: seodec18 ms.date: 08/21/2018 helpviewer_keywords: - "interfaces [C#]" diff --git a/docs/csharp/programming-guide/interop/example-com-class.md b/docs/csharp/programming-guide/interop/example-com-class.md index ab83caf805f2e..b1739b83b0804 100644 --- a/docs/csharp/programming-guide/interop/example-com-class.md +++ b/docs/csharp/programming-guide/interop/example-com-class.md @@ -1,5 +1,6 @@ --- -title: "Example COM Class (C# Programming Guide)" +title: "Example COM Class - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "examples [C#], COM classes" diff --git a/docs/csharp/programming-guide/interop/how-to-access-office-onterop-objects.md b/docs/csharp/programming-guide/interop/how-to-access-office-onterop-objects.md index 2adc6d89ced9d..55e55ca86d550 100644 --- a/docs/csharp/programming-guide/interop/how-to-access-office-onterop-objects.md +++ b/docs/csharp/programming-guide/interop/how-to-access-office-onterop-objects.md @@ -1,5 +1,6 @@ --- -title: "How to: Access Office Interop Objects by Using Visual C# Features (C# Programming Guide)" +title: "How to: Access Office Interop Objects by Using Visual C# Features - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "optional parameters [C#], Office programming" diff --git a/docs/csharp/programming-guide/interop/how-to-use-indexed-properties-in-com-interop-rogramming.md b/docs/csharp/programming-guide/interop/how-to-use-indexed-properties-in-com-interop-rogramming.md index 6ef77e12d6626..43ee125efcce0 100644 --- a/docs/csharp/programming-guide/interop/how-to-use-indexed-properties-in-com-interop-rogramming.md +++ b/docs/csharp/programming-guide/interop/how-to-use-indexed-properties-in-com-interop-rogramming.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Indexed Properties in COM Interop Programming (C# Programming Guide)" +title: "How to: Use Indexed Properties in COM Interop Programming - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "indexed properties [C#]" diff --git a/docs/csharp/programming-guide/interop/how-to-use-platform-invoke-to-play-a-wave-file.md b/docs/csharp/programming-guide/interop/how-to-use-platform-invoke-to-play-a-wave-file.md index c3c894546f4f2..e259e0eaf9369 100644 --- a/docs/csharp/programming-guide/interop/how-to-use-platform-invoke-to-play-a-wave-file.md +++ b/docs/csharp/programming-guide/interop/how-to-use-platform-invoke-to-play-a-wave-file.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Platform Invoke to Play a Wave File (C# Programming Guide)" +title: "How to: Use Platform Invoke to Play a Wave File - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "platform invoke, sound files" diff --git a/docs/csharp/programming-guide/interop/index.md b/docs/csharp/programming-guide/interop/index.md index a4b70ea0bc1ac..fc4fa99a7d762 100644 --- a/docs/csharp/programming-guide/interop/index.md +++ b/docs/csharp/programming-guide/interop/index.md @@ -1,5 +1,6 @@ --- -title: "Interoperability (C# Programming Guide)" +title: "Interoperability - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "COM interop" diff --git a/docs/csharp/programming-guide/interop/interoperability-overview.md b/docs/csharp/programming-guide/interop/interoperability-overview.md index 67d6f2ac2a168..c72cae210cd2d 100644 --- a/docs/csharp/programming-guide/interop/interoperability-overview.md +++ b/docs/csharp/programming-guide/interop/interoperability-overview.md @@ -1,5 +1,6 @@ --- -title: "Interoperability Overview (C# Programming Guide)" +title: "Interoperability Overview - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "COM interop" diff --git a/docs/csharp/programming-guide/main-and-command-args/command-line-arguments.md b/docs/csharp/programming-guide/main-and-command-args/command-line-arguments.md index 6e84b3022409a..a37e4593374b6 100644 --- a/docs/csharp/programming-guide/main-and-command-args/command-line-arguments.md +++ b/docs/csharp/programming-guide/main-and-command-args/command-line-arguments.md @@ -1,5 +1,6 @@ --- -title: "Command-Line Arguments (C# Programming Guide)" +title: "Command-Line Arguments - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "command-line arguments [C#]" diff --git a/docs/csharp/programming-guide/main-and-command-args/how-to-access-command-line-arguments-using-foreach.md b/docs/csharp/programming-guide/main-and-command-args/how-to-access-command-line-arguments-using-foreach.md index d6f1f4b40d372..13a396f7ce785 100644 --- a/docs/csharp/programming-guide/main-and-command-args/how-to-access-command-line-arguments-using-foreach.md +++ b/docs/csharp/programming-guide/main-and-command-args/how-to-access-command-line-arguments-using-foreach.md @@ -1,5 +1,6 @@ --- -title: "How to: Access Command-Line Arguments Using foreach (C# Programming Guide)" +title: "How to: Access Command-Line Arguments Using foreach - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "command-line arguments [C#]" diff --git a/docs/csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments.md b/docs/csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments.md index b8e38712352ed..4997f83c59556 100644 --- a/docs/csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments.md +++ b/docs/csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments.md @@ -1,5 +1,6 @@ --- -title: "How to: Display Command Line Arguments (C# Programming Guide)" +title: "How to: Display Command Line Arguments - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "command-line arguments [C#], displaying" diff --git a/docs/csharp/programming-guide/main-and-command-args/index.md b/docs/csharp/programming-guide/main-and-command-args/index.md index 2f4a6833e33a4..e7825dedd4f19 100644 --- a/docs/csharp/programming-guide/main-and-command-args/index.md +++ b/docs/csharp/programming-guide/main-and-command-args/index.md @@ -1,5 +1,6 @@ --- -title: "Main() and command-line arguments (C# Programming Guide)" +title: "Main() and command-line arguments - C# Programming Guide" +ms.custom: seodec18 ms.date: 08/02/2017 f1_keywords: - "CS5001" diff --git a/docs/csharp/programming-guide/main-and-command-args/main-return-values.md b/docs/csharp/programming-guide/main-and-command-args/main-return-values.md index a2a3e1c150414..a6c1348eb0b04 100644 --- a/docs/csharp/programming-guide/main-and-command-args/main-return-values.md +++ b/docs/csharp/programming-guide/main-and-command-args/main-return-values.md @@ -1,5 +1,6 @@ --- -title: "Main() Return Values (C# Programming Guide)" +title: "Main() Return Values - C# Programming Guide" +ms.custom: seodec18 ms.date: 08/02/2017 helpviewer_keywords: - "Main method [C#], return values" diff --git a/docs/csharp/programming-guide/namespaces/how-to-use-the-global-namespace-alias.md b/docs/csharp/programming-guide/namespaces/how-to-use-the-global-namespace-alias.md index 8d74377373a72..81133992ff9fc 100644 --- a/docs/csharp/programming-guide/namespaces/how-to-use-the-global-namespace-alias.md +++ b/docs/csharp/programming-guide/namespaces/how-to-use-the-global-namespace-alias.md @@ -1,5 +1,6 @@ --- -title: "How to: Use the Global Namespace Alias (C# Programming Guide)" +title: "How to: Use the Global Namespace Alias - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "aliases [C#]" diff --git a/docs/csharp/programming-guide/namespaces/how-to-use-the-my-namespace.md b/docs/csharp/programming-guide/namespaces/how-to-use-the-my-namespace.md index ee0ea9e6352ad..4e1cb3fecf438 100644 --- a/docs/csharp/programming-guide/namespaces/how-to-use-the-my-namespace.md +++ b/docs/csharp/programming-guide/namespaces/how-to-use-the-my-namespace.md @@ -1,5 +1,6 @@ --- -title: "How to: Use the My Namespace (C# Programming Guide)" +title: "How to: Use the My Namespace - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, My namespace access" diff --git a/docs/csharp/programming-guide/namespaces/index.md b/docs/csharp/programming-guide/namespaces/index.md index 8d17183619a38..66016a505ba1f 100644 --- a/docs/csharp/programming-guide/namespaces/index.md +++ b/docs/csharp/programming-guide/namespaces/index.md @@ -1,5 +1,6 @@ --- -title: "Namespaces (C# Programming Guide)" +title: "Namespaces - C# Programming Guide" +ms.custom: seodec18 ms.date: 08/21/2018 helpviewer_keywords: - "C# language, namespaces" diff --git a/docs/csharp/programming-guide/namespaces/using-namespaces.md b/docs/csharp/programming-guide/namespaces/using-namespaces.md index cd3b95ccf37ef..564960e882629 100644 --- a/docs/csharp/programming-guide/namespaces/using-namespaces.md +++ b/docs/csharp/programming-guide/namespaces/using-namespaces.md @@ -1,5 +1,6 @@ --- -title: "Using Namespaces (C# Programming Guide)" +title: "Using Namespaces - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "cs.names" diff --git a/docs/csharp/programming-guide/nullable-types/how-to-identify-a-nullable-type.md b/docs/csharp/programming-guide/nullable-types/how-to-identify-a-nullable-type.md index 48a3a5cef3979..7c00e96aa09ed 100644 --- a/docs/csharp/programming-guide/nullable-types/how-to-identify-a-nullable-type.md +++ b/docs/csharp/programming-guide/nullable-types/how-to-identify-a-nullable-type.md @@ -1,5 +1,6 @@ --- -title: "How to: Identify a nullable type (C# Programming Guide)" +title: "How to: Identify a nullable type - C# Programming Guide" +ms.custom: seodec18 description: "Learn how to determine whether a type is a nullable type or an instance is of a nullable type" ms.date: 09/24/2018 helpviewer_keywords: diff --git a/docs/csharp/programming-guide/nullable-types/index.md b/docs/csharp/programming-guide/nullable-types/index.md index 67446ededeb67..9d584163023fc 100644 --- a/docs/csharp/programming-guide/nullable-types/index.md +++ b/docs/csharp/programming-guide/nullable-types/index.md @@ -1,5 +1,6 @@ --- -title: "Nullable types (C# Programming Guide)" +title: "Nullable types - C# Programming Guide" +ms.custom: seodec18 description: Learn about C# nullable types and how to use them ms.date: 07/30/2018 helpviewer_keywords: diff --git a/docs/csharp/programming-guide/nullable-types/using-nullable-types.md b/docs/csharp/programming-guide/nullable-types/using-nullable-types.md index 56608ad5debe2..0e820631427e4 100644 --- a/docs/csharp/programming-guide/nullable-types/using-nullable-types.md +++ b/docs/csharp/programming-guide/nullable-types/using-nullable-types.md @@ -1,5 +1,6 @@ --- -title: "Using nullable types (C# Programming Guide)" +title: "Using nullable types - C# Programming Guide" +ms.custom: seodec18 description: Learn how to work with C# nullable types ms.date: 08/02/2018 helpviewer_keywords: diff --git a/docs/csharp/programming-guide/statements-expressions-operators/anonymous-functions.md b/docs/csharp/programming-guide/statements-expressions-operators/anonymous-functions.md index d7639242d9ac7..e288043fced66 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/anonymous-functions.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/anonymous-functions.md @@ -1,5 +1,6 @@ --- -title: "Anonymous Functions (C# Programming Guide)" +title: "Anonymous Functions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "lambda expressions [C#], as anonymus functions" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/anonymous-methods.md b/docs/csharp/programming-guide/statements-expressions-operators/anonymous-methods.md index bb879fef49aff..6fa739e387bfc 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/anonymous-methods.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/anonymous-methods.md @@ -1,5 +1,6 @@ --- -title: "Anonymous Methods (C# Programming Guide)" +title: "Anonymous Methods - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "anonymous methods [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/conversion-operators.md b/docs/csharp/programming-guide/statements-expressions-operators/conversion-operators.md index c3df3c31bec05..8146f13fc463b 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/conversion-operators.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/conversion-operators.md @@ -1,5 +1,6 @@ --- -title: "Conversion Operators (C# Programming Guide)" +title: "Conversion Operators - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, conversion operators" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/default-value-expressions.md b/docs/csharp/programming-guide/statements-expressions-operators/default-value-expressions.md index 37a6bea8b97f8..8430c3148b308 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/default-value-expressions.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/default-value-expressions.md @@ -1,5 +1,6 @@ --- -title: "Default value expressions (C# Programming Guide)" +title: "Default value expressions - C# Programming Guide" +ms.custom: seodec18 description: "Default value expressions produce the default value for any reference type or value type" ms.date: 04/25/2018 helpviewer_keywords: diff --git a/docs/csharp/programming-guide/statements-expressions-operators/equality-comparisons.md b/docs/csharp/programming-guide/statements-expressions-operators/equality-comparisons.md index d9b086a488ab2..1c8f4016d3489 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/equality-comparisons.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/equality-comparisons.md @@ -1,5 +1,6 @@ --- -title: "Equality Comparisons (C# Programming Guide)" +title: "Equality Comparisons - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "object equality [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/expression-bodied-members.md b/docs/csharp/programming-guide/statements-expressions-operators/expression-bodied-members.md index fc846452f39e9..a9804f34c4d19 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/expression-bodied-members.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/expression-bodied-members.md @@ -1,5 +1,6 @@ --- -title: "Expression-bodied members (C# Programming Guide)" +title: "Expression-bodied members - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "expression-bodied members[C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/expressions.md b/docs/csharp/programming-guide/statements-expressions-operators/expressions.md index fa10e43a655b1..31036d6a15c3a 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/expressions.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/expressions.md @@ -1,5 +1,6 @@ --- -title: "Expressions (C# Programming Guide)" +title: "Expressions - C# Programming Guide" +ms.custom: seodec18 ms.date: 05/11/2017 helpviewer_keywords: - "expressions [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type.md b/docs/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type.md index df42be0b05482..818e90443dc0c 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type.md @@ -1,5 +1,6 @@ --- -title: "How to: Define Value Equality for a Type (C# Programming Guide)" +title: "How to: Define Value Equality for a Type - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "overriding Equals method [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/how-to-implement-user-defined-conversions-between-structs.md b/docs/csharp/programming-guide/statements-expressions-operators/how-to-implement-user-defined-conversions-between-structs.md index 6d0e847b69ca0..d4c4f6b034410 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/how-to-implement-user-defined-conversions-between-structs.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/how-to-implement-user-defined-conversions-between-structs.md @@ -1,5 +1,6 @@ --- -title: "How to: Implement User-Defined Conversions Between Structs (C# Programming Guide)" +title: "How to: Implement User-Defined Conversions Between Structs - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "user-defined conversions [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/how-to-test-for-reference-equality-identity.md b/docs/csharp/programming-guide/statements-expressions-operators/how-to-test-for-reference-equality-identity.md index 2a18b534a557e..9d68843ffcca3 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/how-to-test-for-reference-equality-identity.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/how-to-test-for-reference-equality-identity.md @@ -1,5 +1,6 @@ --- -title: "How to: Test for Reference Equality (Identity) (C# Programming Guide)" +title: "How to: Test for Reference Equality (Identity) - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "object identity [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-in-a-query.md b/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-in-a-query.md index 3c7fd8f918115..bdd79eb81fc5b 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-in-a-query.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-in-a-query.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Lambda Expressions in a Query (C# Programming Guide)" +title: "How to: Use Lambda Expressions in a Query - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "lambda expressions [C#], in LINQ" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-outside-linq.md b/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-outside-linq.md index f59de6cae306f..95bed0dacc04a 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-outside-linq.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/how-to-use-lambda-expressions-outside-linq.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Lambda Expressions Outside LINQ (C# Programming Guide)" +title: "How to: Use Lambda Expressions Outside LINQ - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "lambda expressions [C#], outside LINQ" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/index.md b/docs/csharp/programming-guide/statements-expressions-operators/index.md index 90d853a0f091c..8dd59d7c461ac 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/index.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/index.md @@ -1,5 +1,6 @@ --- -title: "Statements, Expressions, and Operators (C# Programming Guide)" +title: "Statements, Expressions, and Operators - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "expressions [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/lambda-expressions.md b/docs/csharp/programming-guide/statements-expressions-operators/lambda-expressions.md index 9ced4f79bca31..3313fedf7f3f7 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/lambda-expressions.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/lambda-expressions.md @@ -1,5 +1,6 @@ --- -title: "Lambda Expressions (C# Programming Guide)" +title: "Lambda Expressions - C# Programming Guide" +ms.custom: seodec18 ms.date: 03/03/2017 helpviewer_keywords: - "lambda expressions [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/operators.md b/docs/csharp/programming-guide/statements-expressions-operators/operators.md index c91b3b02d9c1b..9285a037e1171 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/operators.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/operators.md @@ -1,5 +1,6 @@ --- -title: "Operators (C# Programming Guide)" +title: "Operators - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "operators [C#]" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/overloadable-operators.md b/docs/csharp/programming-guide/statements-expressions-operators/overloadable-operators.md index 640c70ccc86fd..24e478ca33736 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/overloadable-operators.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/overloadable-operators.md @@ -1,5 +1,6 @@ --- -title: "Overloadable operators (C# Programming Guide)" +title: "Overloadable operators - C# Programming Guide" +ms.custom: seodec18 ms.date: 08/27/2018 helpviewer_keywords: - "C# language, operator overloading" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/statements.md b/docs/csharp/programming-guide/statements-expressions-operators/statements.md index 3937b7e369922..88810ac5473ee 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/statements.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/statements.md @@ -1,5 +1,6 @@ --- -title: "Statements (C# Programming Guide)" +title: "Statements - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "statements [C#], about statements" diff --git a/docs/csharp/programming-guide/statements-expressions-operators/using-conversion-operators.md b/docs/csharp/programming-guide/statements-expressions-operators/using-conversion-operators.md index 6efceae1e7094..495facc16792b 100644 --- a/docs/csharp/programming-guide/statements-expressions-operators/using-conversion-operators.md +++ b/docs/csharp/programming-guide/statements-expressions-operators/using-conversion-operators.md @@ -1,5 +1,6 @@ --- -title: "Using Conversion Operators (C# Programming Guide)" +title: "Using Conversion Operators - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "conversions [C#], operators" diff --git a/docs/csharp/programming-guide/strings/how-to-determine-whether-a-string-represents-a-numeric-value.md b/docs/csharp/programming-guide/strings/how-to-determine-whether-a-string-represents-a-numeric-value.md index abb5fae4ac1eb..125c569850caa 100644 --- a/docs/csharp/programming-guide/strings/how-to-determine-whether-a-string-represents-a-numeric-value.md +++ b/docs/csharp/programming-guide/strings/how-to-determine-whether-a-string-represents-a-numeric-value.md @@ -1,5 +1,6 @@ --- -title: "How to: Determine Whether a String Represents a Numeric Value (C# Programming Guide)" +title: "How to: Determine Whether a String Represents a Numeric Value - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "numeric strings [C#]" diff --git a/docs/csharp/programming-guide/strings/index.md b/docs/csharp/programming-guide/strings/index.md index 0d02010a7b863..c2a03f62ff05c 100644 --- a/docs/csharp/programming-guide/strings/index.md +++ b/docs/csharp/programming-guide/strings/index.md @@ -1,5 +1,6 @@ --- -title: "Strings (C# Programming Guide)" +title: "Strings - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "C# language, strings" diff --git a/docs/csharp/programming-guide/types/boxing-and-unboxing.md b/docs/csharp/programming-guide/types/boxing-and-unboxing.md index 20eeaba3eb10e..cce808424665d 100644 --- a/docs/csharp/programming-guide/types/boxing-and-unboxing.md +++ b/docs/csharp/programming-guide/types/boxing-and-unboxing.md @@ -1,5 +1,6 @@ --- -title: "Boxing and Unboxing (C# Programming Guide)" +title: "Boxing and Unboxing - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "cs.boxing" diff --git a/docs/csharp/programming-guide/types/casting-and-type-conversions.md b/docs/csharp/programming-guide/types/casting-and-type-conversions.md index 7347098bb1280..f4f120448224b 100644 --- a/docs/csharp/programming-guide/types/casting-and-type-conversions.md +++ b/docs/csharp/programming-guide/types/casting-and-type-conversions.md @@ -1,5 +1,6 @@ --- -title: "Casting and Type Conversions (C# Programming Guide)" +title: "Casting and Type Conversions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "type conversion [C#]" diff --git a/docs/csharp/programming-guide/types/how-to-convert-a-byte-array-to-an-int.md b/docs/csharp/programming-guide/types/how-to-convert-a-byte-array-to-an-int.md index d9cce4a8525d3..8e903cd137a38 100644 --- a/docs/csharp/programming-guide/types/how-to-convert-a-byte-array-to-an-int.md +++ b/docs/csharp/programming-guide/types/how-to-convert-a-byte-array-to-an-int.md @@ -1,5 +1,6 @@ --- -title: "How to: Convert a byte Array to an int (C# Programming Guide)" +title: "How to: Convert a byte Array to an int - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "conversions [C#], byte array to int" diff --git a/docs/csharp/programming-guide/types/how-to-convert-a-string-to-a-number.md b/docs/csharp/programming-guide/types/how-to-convert-a-string-to-a-number.md index 79d7732e3dc0b..0213032a0939c 100644 --- a/docs/csharp/programming-guide/types/how-to-convert-a-string-to-a-number.md +++ b/docs/csharp/programming-guide/types/how-to-convert-a-string-to-a-number.md @@ -1,5 +1,6 @@ --- -title: "How to: Convert a String to a Number (C# Programming Guide)" +title: "How to: Convert a String to a Number - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "conversions [C#]" diff --git a/docs/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types.md b/docs/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types.md index 56c37ff9779fc..4cd0dc3d4bcae 100644 --- a/docs/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types.md +++ b/docs/csharp/programming-guide/types/how-to-convert-between-hexadecimal-strings-and-numeric-types.md @@ -1,5 +1,6 @@ --- -title: "How to: Convert Between Hexadecimal Strings and Numeric Types (C# Programming Guide)" +title: "How to: Convert Between Hexadecimal Strings and Numeric Types - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "hexadecimal strings [C#], converting to numeric type" diff --git a/docs/csharp/programming-guide/types/index.md b/docs/csharp/programming-guide/types/index.md index 2409f61129d26..6f4aef943883a 100644 --- a/docs/csharp/programming-guide/types/index.md +++ b/docs/csharp/programming-guide/types/index.md @@ -1,5 +1,6 @@ --- -title: "Types (C# Programming Guide)" +title: "Types - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "value types [C#]" diff --git a/docs/csharp/programming-guide/types/using-type-dynamic.md b/docs/csharp/programming-guide/types/using-type-dynamic.md index 07ac4fb5ca01d..e00d43582f1ca 100644 --- a/docs/csharp/programming-guide/types/using-type-dynamic.md +++ b/docs/csharp/programming-guide/types/using-type-dynamic.md @@ -1,5 +1,6 @@ --- -title: "Using type dynamic (C# Programming Guide)" +title: "Using type dynamic - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "dynamic [C#], about dynamic type" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/arithmetic-operations-on-pointers.md b/docs/csharp/programming-guide/unsafe-code-pointers/arithmetic-operations-on-pointers.md index 6fd9ed330d1a8..f3bfdebf1dd92 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/arithmetic-operations-on-pointers.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/arithmetic-operations-on-pointers.md @@ -1,5 +1,6 @@ --- -title: "Arithmetic operations on pointers (C# Programming Guide)" +title: "Arithmetic operations on pointers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], arithmetic operations" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/fixed-size-buffers.md b/docs/csharp/programming-guide/unsafe-code-pointers/fixed-size-buffers.md index daaf2bb5a0935..5e46338e619ce 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/fixed-size-buffers.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/fixed-size-buffers.md @@ -1,5 +1,6 @@ --- -title: "Fixed Size Buffers (C# Programming Guide)" +title: "Fixed Size Buffers - C# Programming Guide" +ms.custom: seodec18 ms.date: 04/20/2018 helpviewer_keywords: - "fixed size buffers [C#]" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-a-member-with-a-pointer.md b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-a-member-with-a-pointer.md index 3b4a1a61a7109..e6573c9931c39 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-a-member-with-a-pointer.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-a-member-with-a-pointer.md @@ -1,5 +1,6 @@ --- -title: "How to: access a member with a pointer (C# Programming Guide)" +title: "How to: access a member with a pointer - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], member access" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-an-array-element-with-a-pointer.md b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-an-array-element-with-a-pointer.md index d57c21a8d2e86..c0513d4a36e21 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-an-array-element-with-a-pointer.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-access-an-array-element-with-a-pointer.md @@ -1,5 +1,6 @@ --- -title: "How to access an array element with a pointer (C# Programming Guide)" +title: "How to access an array element with a pointer - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], array access" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-increment-and-decrement-pointers.md b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-increment-and-decrement-pointers.md index a53c78e07aedd..3a32047ac1422 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-increment-and-decrement-pointers.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-increment-and-decrement-pointers.md @@ -1,5 +1,6 @@ --- -title: "How to: increment and decrement pointers (C# Programming Guide)" +title: "How to: increment and decrement pointers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], increment and decrement" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-address-of-a-variable.md b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-address-of-a-variable.md index 86fc1f01cc685..de02ec2aa5e6b 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-address-of-a-variable.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-address-of-a-variable.md @@ -1,5 +1,6 @@ --- -title: "How to: obtain the address of a variable (C# Programming Guide)" +title: "How to: obtain the address of a variable - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "variables [C#], address of" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-value-of-a-pointer-variable.md b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-value-of-a-pointer-variable.md index 282b49143cef9..f2a4e078edabb 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-value-of-a-pointer-variable.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-obtain-the-value-of-a-pointer-variable.md @@ -1,5 +1,6 @@ --- -title: "How to: Obtain the Value of a Pointer Variable (C# Programming Guide)" +title: "How to: Obtain the Value of a Pointer Variable - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointer expressions [C#], indirection" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-use-pointers-to-copy-an-array-of-bytes.md b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-use-pointers-to-copy-an-array-of-bytes.md index 6b8c54367c2a5..5ed5f0f39ee19 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/how-to-use-pointers-to-copy-an-array-of-bytes.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/how-to-use-pointers-to-copy-an-array-of-bytes.md @@ -1,5 +1,6 @@ --- -title: "How to: Use Pointers to Copy an Array of Bytes (C# Programming Guide)" +title: "How to: Use Pointers to Copy an Array of Bytes - C# Programming Guide" +ms.custom: seodec18 ms.date: 04/20/2018 helpviewer_keywords: - "byte arrays [C#]" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/index.md b/docs/csharp/programming-guide/unsafe-code-pointers/index.md index 582301678ec34..23028be7792b4 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/index.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/index.md @@ -1,5 +1,6 @@ --- -title: "Unsafe Code and Pointers (C# Programming Guide)" +title: "Unsafe Code and Pointers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "security [C#], type safety" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/manipulating-pointers.md b/docs/csharp/programming-guide/unsafe-code-pointers/manipulating-pointers.md index 749fb86251234..c61914376e0ec 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/manipulating-pointers.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/manipulating-pointers.md @@ -1,5 +1,6 @@ --- -title: "Manipulating Pointers (C# Programming Guide)" +title: "Manipulating Pointers - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], manipulation" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-comparison.md b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-comparison.md index b9125e2720069..a345b8585ffda 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-comparison.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-comparison.md @@ -1,5 +1,6 @@ --- -title: "Pointer Comparison (C# Programming Guide)" +title: "Pointer Comparison - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], comparison" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-conversions.md b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-conversions.md index f31a0be162d46..5d88369911490 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-conversions.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-conversions.md @@ -1,5 +1,6 @@ --- -title: "Pointer Conversions (C# Programming Guide)" +title: "Pointer Conversions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "pointers [C#], conversions" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-expressions.md b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-expressions.md index da4ab90404b95..5bc7312cb406f 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-expressions.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-expressions.md @@ -1,5 +1,6 @@ --- -title: "Pointer Expressions (C# Programming Guide)" +title: "Pointer Expressions - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "expressions [C#], pointer types" diff --git a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-types.md b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-types.md index c6776a8b5ed01..1bfb1bcfacdc6 100644 --- a/docs/csharp/programming-guide/unsafe-code-pointers/pointer-types.md +++ b/docs/csharp/programming-guide/unsafe-code-pointers/pointer-types.md @@ -1,5 +1,6 @@ --- -title: "Pointer types (C# Programming Guide)" +title: "Pointer types - C# Programming Guide" +ms.custom: seodec18 ms.date: 04/20/2018 helpviewer_keywords: - "unsafe code [C#], pointers" diff --git a/docs/csharp/programming-guide/xmldoc/code-inline.md b/docs/csharp/programming-guide/xmldoc/code-inline.md index b349316c1bffd..c0ec175f2f715 100644 --- a/docs/csharp/programming-guide/xmldoc/code-inline.md +++ b/docs/csharp/programming-guide/xmldoc/code-inline.md @@ -1,5 +1,6 @@ --- -title: "<c> (C# Programming Guide)" +title: "<c> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "c" diff --git a/docs/csharp/programming-guide/xmldoc/code.md b/docs/csharp/programming-guide/xmldoc/code.md index 398f661a61ef3..566d123413c1c 100644 --- a/docs/csharp/programming-guide/xmldoc/code.md +++ b/docs/csharp/programming-guide/xmldoc/code.md @@ -1,5 +1,6 @@ --- -title: "<code> (C# Programming Guide)" +title: "<code> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "code" diff --git a/docs/csharp/programming-guide/xmldoc/cref-attribute.md b/docs/csharp/programming-guide/xmldoc/cref-attribute.md index a226d41692512..35ce83c1a68a7 100644 --- a/docs/csharp/programming-guide/xmldoc/cref-attribute.md +++ b/docs/csharp/programming-guide/xmldoc/cref-attribute.md @@ -1,5 +1,6 @@ --- -title: "cref Attribute (C# Programming Guide)" +title: "cref Attribute - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "cref [C#]" diff --git a/docs/csharp/programming-guide/xmldoc/delimiters-for-documentation-tags.md b/docs/csharp/programming-guide/xmldoc/delimiters-for-documentation-tags.md index c10bb56a23076..4ad45528cbdae 100644 --- a/docs/csharp/programming-guide/xmldoc/delimiters-for-documentation-tags.md +++ b/docs/csharp/programming-guide/xmldoc/delimiters-for-documentation-tags.md @@ -1,5 +1,6 @@ --- -title: "Delimiters for Documentation Tags (C# Programming Guide)" +title: "Delimiters for Documentation Tags - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "XML [C#], delimiters" diff --git a/docs/csharp/programming-guide/xmldoc/example.md b/docs/csharp/programming-guide/xmldoc/example.md index f210572bde398..b6f157a6098b7 100644 --- a/docs/csharp/programming-guide/xmldoc/example.md +++ b/docs/csharp/programming-guide/xmldoc/example.md @@ -1,5 +1,6 @@ --- -title: "<example> (C# Programming Guide)" +title: "<example> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "" diff --git a/docs/csharp/programming-guide/xmldoc/exception.md b/docs/csharp/programming-guide/xmldoc/exception.md index 7327dd9efcd32..570f180cf77b2 100644 --- a/docs/csharp/programming-guide/xmldoc/exception.md +++ b/docs/csharp/programming-guide/xmldoc/exception.md @@ -1,5 +1,6 @@ --- -title: "<exception> (C# Programming Guide)" +title: "<exception> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "exception" diff --git a/docs/csharp/programming-guide/xmldoc/how-to-use-the-xml-documentation-features.md b/docs/csharp/programming-guide/xmldoc/how-to-use-the-xml-documentation-features.md index 26718fd0d9d28..0c5b8a5eb4572 100644 --- a/docs/csharp/programming-guide/xmldoc/how-to-use-the-xml-documentation-features.md +++ b/docs/csharp/programming-guide/xmldoc/how-to-use-the-xml-documentation-features.md @@ -1,5 +1,6 @@ --- -title: "How to: Use the XML documentation features (C# Programming Guide)" +title: "How to: Use the XML documentation features - C# Programming Guide" +ms.custom: seodec18 ms.date: 06/01/2018 helpviewer_keywords: - "XML documentation [C#]" diff --git a/docs/csharp/programming-guide/xmldoc/include.md b/docs/csharp/programming-guide/xmldoc/include.md index 9784c3b209011..987e22bdbc67f 100644 --- a/docs/csharp/programming-guide/xmldoc/include.md +++ b/docs/csharp/programming-guide/xmldoc/include.md @@ -1,5 +1,6 @@ --- -title: "<include> (C# Programming Guide)" +title: "<include> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "include" diff --git a/docs/csharp/programming-guide/xmldoc/list.md b/docs/csharp/programming-guide/xmldoc/list.md index dc5900569973f..b4f51b0266a21 100644 --- a/docs/csharp/programming-guide/xmldoc/list.md +++ b/docs/csharp/programming-guide/xmldoc/list.md @@ -1,5 +1,6 @@ --- -title: "<list> (C# Programming Guide)" +title: "<list> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "list" diff --git a/docs/csharp/programming-guide/xmldoc/para.md b/docs/csharp/programming-guide/xmldoc/para.md index 5d7d404a09a9f..a8e8673d00760 100644 --- a/docs/csharp/programming-guide/xmldoc/para.md +++ b/docs/csharp/programming-guide/xmldoc/para.md @@ -1,5 +1,6 @@ --- -title: "<para> (C# Programming Guide)" +title: "<para> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "" diff --git a/docs/csharp/programming-guide/xmldoc/param.md b/docs/csharp/programming-guide/xmldoc/param.md index b0a54a3d40240..3b8dc7da32a6e 100644 --- a/docs/csharp/programming-guide/xmldoc/param.md +++ b/docs/csharp/programming-guide/xmldoc/param.md @@ -1,5 +1,6 @@ --- -title: "<param> (C# Programming Guide)" +title: "<param> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "param" diff --git a/docs/csharp/programming-guide/xmldoc/paramref.md b/docs/csharp/programming-guide/xmldoc/paramref.md index 6a07af54bb6f3..92d9eeda7dd7d 100644 --- a/docs/csharp/programming-guide/xmldoc/paramref.md +++ b/docs/csharp/programming-guide/xmldoc/paramref.md @@ -1,5 +1,6 @@ --- -title: "<paramref> (C# Programming Guide)" +title: "<paramref> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "paramref" diff --git a/docs/csharp/programming-guide/xmldoc/permission.md b/docs/csharp/programming-guide/xmldoc/permission.md index d1af4b7451355..5ee6ae89489ec 100644 --- a/docs/csharp/programming-guide/xmldoc/permission.md +++ b/docs/csharp/programming-guide/xmldoc/permission.md @@ -1,5 +1,6 @@ --- -title: "<permission> (C# Programming Guide)" +title: "<permission> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "permission" diff --git a/docs/csharp/programming-guide/xmldoc/processing-the-xml-file.md b/docs/csharp/programming-guide/xmldoc/processing-the-xml-file.md index f161656c20af7..3a1aadadb3025 100644 --- a/docs/csharp/programming-guide/xmldoc/processing-the-xml-file.md +++ b/docs/csharp/programming-guide/xmldoc/processing-the-xml-file.md @@ -1,5 +1,6 @@ --- -title: "Processing the XML File (C# Programming Guide)" +title: "Processing the XML File - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "XML processing [C#]" diff --git a/docs/csharp/programming-guide/xmldoc/recommended-tags-for-documentation-comments.md b/docs/csharp/programming-guide/xmldoc/recommended-tags-for-documentation-comments.md index 6eb36d138532e..7355a42ea12a9 100644 --- a/docs/csharp/programming-guide/xmldoc/recommended-tags-for-documentation-comments.md +++ b/docs/csharp/programming-guide/xmldoc/recommended-tags-for-documentation-comments.md @@ -1,5 +1,6 @@ --- -title: "Recommended Tags for Documentation Comments (C# Programming Guide)" +title: "Recommended Tags for Documentation Comments - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 helpviewer_keywords: - "XML [C#], tags" diff --git a/docs/csharp/programming-guide/xmldoc/remarks.md b/docs/csharp/programming-guide/xmldoc/remarks.md index 797f2ba593c42..e14c0698f4c11 100644 --- a/docs/csharp/programming-guide/xmldoc/remarks.md +++ b/docs/csharp/programming-guide/xmldoc/remarks.md @@ -1,5 +1,6 @@ --- -title: "<remarks> (C# Programming Guide)" +title: "<remarks> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "remarks" diff --git a/docs/csharp/programming-guide/xmldoc/returns.md b/docs/csharp/programming-guide/xmldoc/returns.md index 096585189e6d2..82e1b28d7e7dc 100644 --- a/docs/csharp/programming-guide/xmldoc/returns.md +++ b/docs/csharp/programming-guide/xmldoc/returns.md @@ -1,5 +1,6 @@ --- -title: "<returns> (C# Programming Guide)" +title: "<returns> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "returns" diff --git a/docs/csharp/programming-guide/xmldoc/see.md b/docs/csharp/programming-guide/xmldoc/see.md index 22cc833adae7a..c4f317cd7b680 100644 --- a/docs/csharp/programming-guide/xmldoc/see.md +++ b/docs/csharp/programming-guide/xmldoc/see.md @@ -1,5 +1,6 @@ --- -title: "<see> (C# Programming Guide)" +title: "<see> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "" diff --git a/docs/csharp/programming-guide/xmldoc/seealso.md b/docs/csharp/programming-guide/xmldoc/seealso.md index e25c27909822c..0724aa7504df8 100644 --- a/docs/csharp/programming-guide/xmldoc/seealso.md +++ b/docs/csharp/programming-guide/xmldoc/seealso.md @@ -1,5 +1,6 @@ --- -title: "<seealso> (C# Programming Guide)" +title: "<seealso> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "cref" diff --git a/docs/csharp/programming-guide/xmldoc/summary.md b/docs/csharp/programming-guide/xmldoc/summary.md index d1ef258252788..6cfb7c7969b03 100644 --- a/docs/csharp/programming-guide/xmldoc/summary.md +++ b/docs/csharp/programming-guide/xmldoc/summary.md @@ -1,5 +1,6 @@ --- -title: "<summary> (C# Programming Guide)" +title: "<summary> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "" diff --git a/docs/csharp/programming-guide/xmldoc/typeparam.md b/docs/csharp/programming-guide/xmldoc/typeparam.md index 5502dcf2b5f65..2e7328de1c9af 100644 --- a/docs/csharp/programming-guide/xmldoc/typeparam.md +++ b/docs/csharp/programming-guide/xmldoc/typeparam.md @@ -1,5 +1,6 @@ --- -title: "<typeparam> (C# Programming Guide)" +title: "<typeparam> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "typeparam" diff --git a/docs/csharp/programming-guide/xmldoc/typeparamref.md b/docs/csharp/programming-guide/xmldoc/typeparamref.md index fac018ebead58..743545f21ee77 100644 --- a/docs/csharp/programming-guide/xmldoc/typeparamref.md +++ b/docs/csharp/programming-guide/xmldoc/typeparamref.md @@ -1,5 +1,6 @@ --- -title: "<typeparamref> (C# Programming Guide)" +title: "<typeparamref> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "typeparamref" diff --git a/docs/csharp/programming-guide/xmldoc/value.md b/docs/csharp/programming-guide/xmldoc/value.md index 8061dacab6ec5..d241b154fef59 100644 --- a/docs/csharp/programming-guide/xmldoc/value.md +++ b/docs/csharp/programming-guide/xmldoc/value.md @@ -1,5 +1,6 @@ --- -title: "<value> (C# Programming Guide)" +title: "<value> - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "" diff --git a/docs/csharp/programming-guide/xmldoc/xml-documentation-comments.md b/docs/csharp/programming-guide/xmldoc/xml-documentation-comments.md index 0dc3b3a98f2cc..fce46d688fa9d 100644 --- a/docs/csharp/programming-guide/xmldoc/xml-documentation-comments.md +++ b/docs/csharp/programming-guide/xmldoc/xml-documentation-comments.md @@ -1,5 +1,6 @@ --- -title: "XML Documentation Comments (C# Programming Guide)" +title: "XML Documentation Comments - C# Programming Guide" +ms.custom: seodec18 ms.date: 07/20/2015 f1_keywords: - "cs.xml" diff --git a/docs/csharp/versioning.md b/docs/csharp/versioning.md index a966052029243..af38ab3c5a4d7 100644 --- a/docs/csharp/versioning.md +++ b/docs/csharp/versioning.md @@ -66,7 +66,7 @@ Lucky for you C# and the .NET ecosystem comes with features and techniques that ### Assembly Binding Redirection -You can use the `app.config` file to update the version of a library your app uses. By adding what is called a [*binding redirect*](../framework/configure-apps/redirect-assembly-versions.md) your +You can use the `app.config` file to update the version of a library your app uses. By adding what is called a [*binding redirect*](../framework/configure-apps/redirect-assembly-versions.md) you can use the new library version without having to recompile your app. The following example shows how you would update your app's `app.config` file to use the `1.0.1` patch version of `ReferencedLibrary` instead of the `1.0.0` version it was originally compiled with. diff --git a/docs/csharp/whats-new/csharp-version-history.md b/docs/csharp/whats-new/csharp-version-history.md index 8b2b08825fb68..3ef379a72f742 100644 --- a/docs/csharp/whats-new/csharp-version-history.md +++ b/docs/csharp/whats-new/csharp-version-history.md @@ -7,7 +7,19 @@ ms.date: 09/20/2017 # The history of C# # -What did the language look like in its earliest incarnations? And how has it evolved in the years since? +This article provides a history of each major release of the C# language. The C# team is continuing to innovate and add new features. Detailed language feature status, including features considered for upcoming releases can be found [on the dotnet/roslyn repository](https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md) on GitHub. + +> [!IMPORTANT] +> The C# language relies on types and methods in what the C# specification defines as a *standard library* for some of the features. The .NET platform delivers those types and methods in a number of packages. One example is exception processing. Every `throw` statement or expression is checked to ensure the object being thrown is derived from . Similarly, every `catch` is checked to ensure that the type being caught is derived from . Each version may add new requirements. To use the latest language features in older environments, you may need to install specific libraries. These dependencies are documented in the page for each specific version. You can learn more about the [relationships between language and library](relationships-between-language-and-library.md) for background on this dependency. + +The C# build tools consider the latest major language release the default language version. There may be point releases between major releases, detailed in other articles in this section. To use the latest features in a point release, you need to [configure the compiler language version](../language-reference/configure-language-version.md) and select the version. There have been three point releases since C# 7.0: + +* [C# 7.3](csharp-7-3.md): + - C# 7.3 is currently available in [Visual Studio 2017 version 15.7](https://visualstudio.microsoft.com/vs/whatsnew/), and in the [.NET Core 2.1 SDK 2.1.300 RC1](../../core/whats-new/index.md). +* [C# 7.2](csharp-7-2.md): + - C# 7.2 is currently available in [Visual Studio 2017 version 15.5](https://visualstudio.microsoft.com/vs/whatsnew/), and in the [.NET Core 2.0 SDK](../../core/whats-new/index.md). +* [C# 7.1](csharp-7-1.md): + - These features were added in [Visual Studio 2017 version 15.3](https://visualstudio.microsoft.com/vs/whatsnew/), and in the [.NET Core 2.0 SDK](../../core/whats-new/index.md). ## C# version 1.0 @@ -101,7 +113,7 @@ Dynamic binding gives you the potential for errors but also great power within t ## C# version 5.0 -C# version 5.0 was a focused version of the language. Nearly all of the effort for that version went into another groundbreaking language concept: the `async` and `await` model for asynchronous programming . Here is the major features list: +C# version 5.0 was a focused version of the language. Nearly all of the effort for that version went into another groundbreaking language concept: the `async` and `await` model for asynchronous programming. Here is the major features list: - [Asynchronous members](../async.md) - [Caller info attributes](../programming-guide/concepts/caller-information.md) diff --git a/docs/csharp/whats-new/index.md b/docs/csharp/whats-new/index.md index 519d14b91e641..dd5a611d2dada 100644 --- a/docs/csharp/whats-new/index.md +++ b/docs/csharp/whats-new/index.md @@ -1,51 +1,4 @@ --- -title: What's New in C# - C# Guide -description: How is the C# language evolving -ms.date: 11/13/2017 -ms.assetid: 77deec51-a14d-46d4-9bb3-faf449477149 +redirect_url: csharp-7-3 +ms.custom: "updateeachrelease" --- - -# What's new in C# # - -This page provides a roadmap of new features in each major release of -the C# language. The linked articles detail information on the -major features added in each release. You will find information on new features that have been released, either in a general release, or in a public preview. Detailed language feature status, including features considered for upcoming releases can be found [on the dotnet/roslyn repository](https://github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md) on GitHub. - -> [!IMPORTANT] -> The C# language relies on types and methods in a *standard library* for some of the features. One example is exception processing. Every `throw` statement or expression is checked to ensure the object being thrown is derived from . Similarly, every `catch` is checked to ensure that the type being caught is derived from . Each version may add new requirements. To use the latest language features in older environments, you may need to install specific libraries. These dependencies are documented in the page for each specific version. You can learn more about the [relationships between language and library](relationships-between-language-and-library.md) for background on this dependency. - -To use the latest features in a point release, you need to [configure the compiler language version](../language-reference/configure-language-version.md) and select the version. - -* [C# 7.3](csharp-7-3.md): - - This page describes the latest features in the C# language. C# 7.3 is currently available in [Visual Studio 2017 version 15.7](https://visualstudio.microsoft.com/vs/whatsnew/), and in the [.NET Core 2.1 SDK 2.1.300 RC1](../../core/whats-new/index.md). -* [C# 7.2](csharp-7-2.md): - - This page describes the features added in the C# language. C# 7.2 is currently available in [Visual Studio 2017 version 15.5](https://visualstudio.microsoft.com/vs/whatsnew/), and in the [.NET Core 2.0 SDK](../../core/whats-new/index.md). -* [C# 7.1](csharp-7-1.md): - - This page describes the features added in C# 7.1. These features were added in [Visual Studio 2017 version 15.3](https://visualstudio.microsoft.com/vs/whatsnew/), and in the [.NET Core 2.0 SDK](../../core/whats-new/index.md). -* [C# 7.0](csharp-7.md): - - This page describes the features added in C# 7.0. These features were added in [Visual Studio 2017](https://visualstudio.microsoft.com/vs/whatsnew/) and [.NET Core 1.0](../../core/whats-new/index.md) and later -* [C# 6](csharp-6.md): - - This page describes the features that were added in C# 6. These features are available in Visual Studio 2015 for Windows developers, and on .NET Core 1.0 for developers exploring C# on macOS and Linux. -* [Cross Platform Support](../../core/index.md): - - C#, through .NET Core support, runs on multiple platforms. If you are interested in trying C# on macOS, or on one of the many supported Linux distributions, learn more about .NET Core. -* [.NET Compiler Platform SDK](../roslyn-sdk/index.md): - - The .NET Compiler Platform SDK enables you to write code that performs static analysis on C# code. You can use these APIs to find potential errors, or bad practices, suggest fixes, and even implement those fixes. - -## Previous Versions - -The following lists key features that were introduced in previous versions of the C# language and Visual Studio .NET. - -* Visual Studio .NET 2013: - - This version of Visual Studio included bug fixes, performance improvements, and technology previews of .NET Compiler Platform ("Roslyn") which became the [.NET Compiler Platform SDK](../roslyn-sdk/index.md). -* C# 5, Visual Studio .NET 2012: - - `Async` / `await`, and [caller information](../programming-guide/concepts/caller-information.md) attributes. -* C# 4, Visual Studio .NET 2010: - - `Dynamic`, [named arguments](../programming-guide/classes-and-structs/named-and-optional-arguments.md), optional parameters, and generic [covariance and contra variance](../programming-guide/concepts/covariance-contravariance/index.md). -* C# 3, Visual Studio .NET 2008: - - Object and collection initializers, lambda expressions, extension methods, anonymous types, automatic properties, local `var` type inference, and [Language Integrated Query (LINQ)](../programming-guide/concepts/linq/index.md). -* C# 2, Visual Studio .NET 2005: - - Anonymous methods, generics, nullable types, iterators/yield, `static` classes, and covariance and contra variance for delegates. -* C# 1.1, Visual Studio .NET 2003: - - `#line` pragma and xml doc comments. -* C# 1, Visual Studio .NET 2002: - - The first release of [C#](../csharp.md). diff --git a/docs/csharp/write-safe-efficient-code.md b/docs/csharp/write-safe-efficient-code.md index 050958af50e0b..cb6bf5567550c 100644 --- a/docs/csharp/write-safe-efficient-code.md +++ b/docs/csharp/write-safe-efficient-code.md @@ -92,7 +92,7 @@ public struct Point3D { private static Point3D origin = new Point3D(0,0,0); - public ref readonly Point3D Origin => ref origin; + public static ref readonly Point3D Origin => ref origin; // other members removed for space } diff --git a/docs/framework/data/adonet/asynchronous-programming.md b/docs/framework/data/adonet/asynchronous-programming.md index f8a3cbb22e93e..7fd38596ccaea 100644 --- a/docs/framework/data/adonet/asynchronous-programming.md +++ b/docs/framework/data/adonet/asynchronous-programming.md @@ -123,7 +123,7 @@ class A { SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) - Console.WriteLine(String.Format("{0}", reader[0])); + Console.WriteLine(reader[0]); } } } diff --git a/docs/framework/data/adonet/configuring-parameters-and-parameter-data-types.md b/docs/framework/data/adonet/configuring-parameters-and-parameter-data-types.md index 06559ab5a4b92..0a169c64d1596 100644 --- a/docs/framework/data/adonet/configuring-parameters-and-parameter-data-types.md +++ b/docs/framework/data/adonet/configuring-parameters-and-parameter-data-types.md @@ -1,196 +1,205 @@ --- -title: "Configuring Parameters and Parameter Data Types" +title: "Configuring parameters and parameter data types" ms.date: "03/30/2017" dev_langs: - "csharp" - "vb" ms.assetid: 537d8a2c-d40b-4000-83eb-bc1fcc93f707 --- -# Configuring Parameters and Parameter Data Types -Command objects use parameters to pass values to SQL statements or stored procedures, providing type checking and validation. Unlike command text, parameter input is treated as a literal value, not as executable code. This helps guard against "SQL injection" attacks, in which an attacker inserts a command that compromises security on the server into an SQL statement. - - Parameterized commands can also improve query execution performance, because they help the database server accurately match the incoming command with a proper cached query plan. For more information, see [Execution Plan Caching and Reuse](/sql/relational-databases/query-processing-architecture-guide#execution-plan-caching-and-reuse) and [Parameters and Execution Plan Reuse](/sql/relational-databases/query-processing-architecture-guide#PlanReuse). In addition to the security and performance benefits, parameterized commands provide a convenient method for organizing values passed to a data source. - - A object can be created by using its constructor, or by adding it to the by calling the `Add` method of the collection. The `Add` method will take as input either constructor arguments or an existing parameter object, depending on the data provider. - -## Supplying the ParameterDirection Property - When adding parameters, you must supply a property for parameters other than input parameters. The following table shows the `ParameterDirection` values that you can use with the enumeration. - -|Member name|Description| -|-----------------|-----------------| -||The parameter is an input parameter. This is the default.| -||The parameter can perform both input and output.| -||The parameter is an output parameter.| -||The parameter represents a return value from an operation such as a stored procedure, built-in function, or user-defined function.| - -## Working with Parameter Placeholders - The syntax for parameter placeholders depends on the data source. The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data providers handle naming and specifying parameters and parameter placeholders differently. This syntax is customized to a specific data source, as described in the following table. - -|Data provider|Parameter naming syntax| -|-------------------|-----------------------------| -||Uses named parameters in the format `@`*parametername*.| -||Uses positional parameter markers indicated by a question mark (`?`).| -||Uses positional parameter markers indicated by a question mark (`?`).| -||Uses named parameters in the format `:`*parmname* (or *parmname*).| - -## Specifying Parameter Data Types - The data type of a parameter is specific to the [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data provider. Specifying the type converts the value of the `Parameter` to the [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data provider type before passing the value to the data source. You may also specify the type of a `Parameter` in a generic manner by setting the `DbType` property of the `Parameter` object to a particular . - - The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data provider type of a `Parameter` object is inferred from the [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] type of the `Value` of the `Parameter` object, or from the `DbType` of the `Parameter` object. The following table shows the inferred `Parameter` type based on the object passed as the `Parameter` value or the specified `DbType`. - -|.NET Framework type|DbType|SqlDbType|OleDbType|OdbcType|OracleType| -|-------------------------|------------|---------------|---------------|--------------|----------------| -||Boolean|Bit|Boolean|Bit|Byte| -||Byte|TinyInt|UnsignedTinyInt|TinyInt|Byte| -|byte[]|Binary|VarBinary`.` This implicit conversion will fail if the byte array is larger than the maximum size of a VarBinary, which is 8000 bytes.For byte arrays larger than 8000 bytes, explicitly set the .|VarBinary|Binary|Raw| -||``|Inferring a from char is not supported.|Char|Char|Byte| -||DateTime|DateTime|DBTimeStamp|DateTime|DateTime| -||DateTimeOffset|DateTimeOffset in SQL Server 2008. Inferring a from DateTimeOffset is not supported in versions of SQL Server earlier than SQL Server 2008.|||DateTime| -||Decimal|Decimal|Decimal|Numeric|Number| -||Double|Float|Double|Double|Double| -||Single|Real|Single|Real|Float| -||Guid|UniqueIdentifier|Guid|UniqueIdentifier|Raw| -||Int16|SmallInt|SmallInt|SmallInt|Int16| -||Int32|Int|Int|Int|Int32| -||Int64|BigInt|BigInt|BigInt|Number| -||Object|Variant|Variant|Inferring an OdbcType from Object is not supported.|Blob| -||String|NVarChar. This implicit conversion will fail if the string is larger than the maximum size of an NVarChar, which is 4000 characters. For strings larger than 4000 characters, explicitly set the .|VarWChar|NVarChar|NVarChar| -||Time|Time in SQL Server 2008. Inferring a from TimeSpan is not supported in versions of SQL Server earlier than SQL Server 2008.|DBTime|Time|DateTime| -||UInt16|Inferring a from UInt16 is not supported.|UnsignedSmallInt|Int|UInt16| -||UInt32|Inferring a from UInt32 is not supported.|UnsignedInt|BigInt|UInt32| -||UInt64|Inferring a from UInt64 is not supported.|UnsignedBigInt|Numeric|Number| -||AnsiString|VarChar|VarChar|VarChar|VarChar| -||AnsiStringFixedLength|Char|Char|Char|Char| -|``|Currency|Money|Currency|Inferring an `OdbcType` from `Currency` is not supported.|Number| -|``|Date|Date in SQL Server 2008. Inferring a from Date is not supported in versions of SQL Server earlier than SQL Server 2008.|DBDate|Date|DateTime| -|``|SByte|Inferring a from SByte is not supported.|TinyInt|Inferring an `OdbcType` from SByte is not supported.|SByte| -||StringFixedLength|NChar|WChar|NChar|NChar| -||Time|Time in SQL Server 2008. Inferring a from Time is not supported in versions of SQL Server earlier than SQL Server 2008.|DBTime|Time|DateTime| -||VarNumeric|Inferring a from VarNumeric is not supported.|VarNumeric|Inferring an `OdbcType` from VarNumeric is not supported.|Number| -|user-defined type (an object with |Object or String, depending the provider (SqlClient always returns an Object, Odbc always returns a String, and the OleDb managed data provider can see either|SqlDbType.Udt if is present, otherwise Variant|OleDbType.VarWChar (if value is null) otherwise OleDbType.Variant.|OdbcType.NVarChar|not supported| - +# Configuring parameters and parameter data types + +Command objects use parameters to pass values to SQL statements or stored procedures, providing type checking and validation. Unlike command text, parameter input is treated as a literal value, not as executable code. This helps guard against "SQL injection" attacks, in which an attacker inserts a command that compromises security on the server into an SQL statement. + +Parameterized commands can also improve query execution performance, because they help the database server accurately match the incoming command with a proper cached query plan. For more information, see [Execution Plan Caching and Reuse](/sql/relational-databases/query-processing-architecture-guide#execution-plan-caching-and-reuse) and [Parameters and Execution Plan Reuse](/sql/relational-databases/query-processing-architecture-guide#PlanReuse). In addition to the security and performance benefits, parameterized commands provide a convenient method for organizing values passed to a data source. + +A object can be created by using its constructor, or by adding it to the by calling the `Add` method of the collection. The `Add` method will take as input either constructor arguments or an existing parameter object, depending on the data provider. + +## Supplying the ParameterDirection property + +When adding parameters, you must supply a property for parameters other than input parameters. The following table shows the `ParameterDirection` values that you can use with the enumeration. + +|Member name|Description| +|-----------------|-----------------| +||The parameter is an input parameter. This is the default.| +||The parameter can perform both input and output.| +||The parameter is an output parameter.| +||The parameter represents a return value from an operation such as a stored procedure, built-in function, or user-defined function.| + +## Working with parameter placeholders + +The syntax for parameter placeholders depends on the data source. The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data providers handle naming and specifying parameters and parameter placeholders differently. This syntax is customized to a specific data source, as described in the following table. + +|Data provider|Parameter naming syntax| +|-------------------|-----------------------------| +||Uses named parameters in the format `@`*parametername*.| +||Uses positional parameter markers indicated by a question mark (`?`).| +||Uses positional parameter markers indicated by a question mark (`?`).| +||Uses named parameters in the format `:`*parmname* (or *parmname*).| + +## Specifying parameter data types + +The data type of a parameter is specific to the [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data provider. Specifying the type converts the value of the `Parameter` to the [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data provider type before passing the value to the data source. You may also specify the type of a `Parameter` in a generic manner by setting the `DbType` property of the `Parameter` object to a particular . + +The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] data provider type of a `Parameter` object is inferred from the [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] type of the `Value` of the `Parameter` object, or from the `DbType` of the `Parameter` object. The following table shows the inferred `Parameter` type based on the object passed as the `Parameter` value or the specified `DbType`. + +|.NET Framework type|DbType|SqlDbType|OleDbType|OdbcType|OracleType| +|-------------------------|------------|---------------|---------------|--------------|----------------| +||Boolean|Bit|Boolean|Bit|Byte| +||Byte|TinyInt|UnsignedTinyInt|TinyInt|Byte| +|byte[]|Binary|VarBinary. This implicit conversion will fail if the byte array is larger than the maximum size of a VarBinary, which is 8000 bytes.For byte arrays larger than 8000 bytes, explicitly set the .|VarBinary|Binary|Raw| +|| |Inferring a from char is not supported.|Char|Char|Byte| +||DateTime|DateTime|DBTimeStamp|DateTime|DateTime| +||DateTimeOffset|DateTimeOffset in SQL Server 2008. Inferring a from DateTimeOffset is not supported in versions of SQL Server earlier than SQL Server 2008.|||DateTime| +||Decimal|Decimal|Decimal|Numeric|Number| +||Double|Float|Double|Double|Double| +||Single|Real|Single|Real|Float| +||Guid|UniqueIdentifier|Guid|UniqueIdentifier|Raw| +||Int16|SmallInt|SmallInt|SmallInt|Int16| +||Int32|Int|Int|Int|Int32| +||Int64|BigInt|BigInt|BigInt|Number| +||Object|Variant|Variant|Inferring an OdbcType from Object is not supported.|Blob| +||String|NVarChar. This implicit conversion will fail if the string is larger than the maximum size of an NVarChar, which is 4000 characters. For strings larger than 4000 characters, explicitly set the .|VarWChar|NVarChar|NVarChar| +||Time|Time in SQL Server 2008. Inferring a from TimeSpan is not supported in versions of SQL Server earlier than SQL Server 2008.|DBTime|Time|DateTime| +||UInt16|Inferring a from UInt16 is not supported.|UnsignedSmallInt|Int|UInt16| +||UInt32|Inferring a from UInt32 is not supported.|UnsignedInt|BigInt|UInt32| +||UInt64|Inferring a from UInt64 is not supported.|UnsignedBigInt|Numeric|Number| +||AnsiString|VarChar|VarChar|VarChar|VarChar| +||AnsiStringFixedLength|Char|Char|Char|Char| +||Currency|Money|Currency|Inferring an `OdbcType` from `Currency` is not supported.|Number| +||Date|Date in SQL Server 2008. Inferring a from Date is not supported in versions of SQL Server earlier than SQL Server 2008.|DBDate|Date|DateTime| +||SByte|Inferring a from SByte is not supported.|TinyInt|Inferring an `OdbcType` from SByte is not supported.|SByte| +||StringFixedLength|NChar|WChar|NChar|NChar| +||Time|Time in SQL Server 2008. Inferring a from Time is not supported in versions of SQL Server earlier than SQL Server 2008.|DBTime|Time|DateTime| +||VarNumeric|Inferring a from VarNumeric is not supported.|VarNumeric|Inferring an `OdbcType` from VarNumeric is not supported.|Number| +|user-defined type (an object with |Object or String, depending the provider (SqlClient always returns an Object, Odbc always returns a String, and the OleDb managed data provider can see either|SqlDbType.Udt if is present, otherwise Variant|OleDbType.VarWChar (if value is null) otherwise OleDbType.Variant.|OdbcType.NVarChar|not supported| + > [!NOTE] -> Conversions from decimal to other types are narrowing conversions that round the decimal value to the nearest integer value toward zero. If the result of the conversion is not representable in the destination type, an is thrown. - +> Conversions from decimal to other types are narrowing conversions that round the decimal value to the nearest integer value toward zero. If the result of the conversion is not representable in the destination type, an is thrown. + > [!NOTE] -> When you send a null parameter value to the server, you must specify , not `null` (`Nothing` in Visual Basic). The null value in the system is an empty object that has no value. is used to represent null values. For more information about database nulls, see [Handling Null Values](../../../../docs/framework/data/adonet/sql/handling-null-values.md). - -## Deriving Parameter Information - Parameters can also be derived from a stored procedure using the `DbCommandBuilder` class. Both the `SqlCommandBuilder` and `OleDbCommandBuilder` classes provide a static method, `DeriveParameters`, which automatically populates the parameters collection of a command object that uses parameter information from a stored procedure. Note that `DeriveParameters` overwrites any existing parameter information for the command. - +> When you send a null parameter value to the server, you must specify , not `null` (`Nothing` in Visual Basic). The null value in the system is an empty object that has no value. is used to represent null values. For more information about database nulls, see [Handling Null Values](./sql/handling-null-values.md). + +## Deriving parameter information + +Parameters can also be derived from a stored procedure using the `DbCommandBuilder` class. Both the `SqlCommandBuilder` and `OleDbCommandBuilder` classes provide a static method, `DeriveParameters`, which automatically populates the parameters collection of a command object that uses parameter information from a stored procedure. Note that `DeriveParameters` overwrites any existing parameter information for the command. + > [!NOTE] -> Deriving parameter information incurs a performance penalty because it requires an additional round trip to the data source to retrieve the information. If parameter information is known at design time, you can improve the performance of your application by setting the parameters explicitly. - - For more information, see [Generating Commands with CommandBuilders](../../../../docs/framework/data/adonet/generating-commands-with-commandbuilders.md). - -## Using Parameters with a SqlCommand and a Stored Procedure - Stored procedures offer many advantages in data-driven applications. By using stored procedures, database operations can be encapsulated in a single command, optimized for best performance, and enhanced with additional security. Although a stored procedure can be called by passing the stored procedure name followed by parameter arguments as an SQL statement, by using the collection of the [!INCLUDE[vstecado](../../../../includes/vstecado-md.md)] object enables you to more explicitly define stored procedure parameters, and to access output parameters and return values. - +> Deriving parameter information incurs a performance penalty because it requires an additional round trip to the data source to retrieve the information. If parameter information is known at design time, you can improve the performance of your application by setting the parameters explicitly. + +For more information, see [Generating Commands with CommandBuilders](generating-commands-with-commandbuilders.md). + +## Using parameters with a SqlCommand and a stored procedure + +Stored procedures offer many advantages in data-driven applications. By using stored procedures, database operations can be encapsulated in a single command, optimized for best performance, and enhanced with additional security. Although a stored procedure can be called by passing the stored procedure name followed by parameter arguments as an SQL statement, by using the collection of the [!INCLUDE[vstecado](../../../../includes/vstecado-md.md)] object enables you to more explicitly define stored procedure parameters, and to access output parameters and return values. + > [!NOTE] > Parameterized statements are executed on the server by using `sp_executesql,` which allows for query plan reuse. Local cursors or variables in the `sp_executesql` batch are not visible to the batch that calls `sp_executesql`. Changes in database context last only to the end of the `sp_executesql` statement. For more information, see [sp_executesql (Transact-SQL)](/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql). - - When using parameters with a to execute a SQL Server stored procedure, the names of the parameters added to the collection must match the names of the parameter markers in the stored procedure. The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for SQL Server does not support the question mark (?) placeholder for passing parameters to an SQL statement or a stored procedure. It treats parameters in the stored procedure as named parameters and searches for matching parameter markers. For example, the `CustOrderHist` stored procedure is defined by using a parameter named `@CustomerID`. When your code executes the stored procedure, it must also use a parameter named `@CustomerID`. - -``` -CREATE PROCEDURE dbo.CustOrderHist @CustomerID varchar(5) -``` - -### Example - This example demonstrates how to call a SQL Server stored procedure in the `Northwind` sample database. The name of the stored procedure is `dbo.SalesByCategory` and it has an input parameter named `@CategoryName` with a data type of `nvarchar(15)`. The code creates a new inside a using block so that the connection is disposed when the procedure ends. The and objects are created, and their properties set. A executes the `SqlCommand` and returns the result set from the stored procedure, displaying the output in the console window. - + +When using parameters with a to execute a SQL Server stored procedure, the names of the parameters added to the collection must match the names of the parameter markers in the stored procedure. The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for SQL Server does not support the question mark (?) placeholder for passing parameters to an SQL statement or a stored procedure. It treats parameters in the stored procedure as named parameters and searches for matching parameter markers. For example, the `CustOrderHist` stored procedure is defined by using a parameter named `@CustomerID`. When your code executes the stored procedure, it must also use a parameter named `@CustomerID`. + +```sql +CREATE PROCEDURE dbo.CustOrderHist @CustomerID varchar(5) +``` + +### Example + +This example demonstrates how to call a SQL Server stored procedure in the `Northwind` sample database. The name of the stored procedure is `dbo.SalesByCategory` and it has an input parameter named `@CategoryName` with a data type of `nvarchar(15)`. The code creates a new inside a using block so that the connection is disposed when the procedure ends. The and objects are created, and their properties set. A executes the `SqlCommand` and returns the result set from the stored procedure, displaying the output in the console window. + > [!NOTE] -> Instead of creating `SqlCommand` and `SqlParameter` objects and then setting properties in separate statements, you can instead elect to use one of the overloaded constructors to set multiple properties in a single statement. - - [!code-csharp[DataWorks SqlClient.StoredProcedure#1](../../../../samples/snippets/csharp/VS_Snippets_ADO.NET/DataWorks SqlClient.StoredProcedure/CS/source.cs#1)] - [!code-vb[DataWorks SqlClient.StoredProcedure#1](../../../../samples/snippets/visualbasic/VS_Snippets_ADO.NET/DataWorks SqlClient.StoredProcedure/VB/source.vb#1)] - -## Using Parameters with an OleDbCommand or OdbcCommand - When using parameters with an or , the order of the parameters added to the `Parameters` collection must match the order of the parameters defined in your stored procedure. The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for OLE DB and [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for ODBC treat parameters in a stored procedure as placeholders and apply parameter values in order. In addition, return value parameters must be the first parameters added to the `Parameters` collection. - - The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for OLE DB and [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for ODBC do not support named parameters for passing parameters to an SQL statement or a stored procedure. In this case, you must use the question mark (?) placeholder, as in the following example. - -``` -SELECT * FROM Customers WHERE CustomerID = ? -``` - - As a result, the order in which `Parameter` objects are added to the `Parameters` collection must directly correspond to the position of the ? placeholder for the parameter. - -### OleDb Example - -```vb -Dim command As OleDbCommand = New OleDbCommand( _ - "SampleProc", connection) -command.CommandType = CommandType.StoredProcedure - -Dim parameter As OleDbParameter = command.Parameters.Add( _ - "RETURN_VALUE", OleDbType.Integer) -parameter.Direction = ParameterDirection.ReturnValue - -parameter = command.Parameters.Add( _ - "@InputParm", OleDbType.VarChar, 12) -parameter.Value = "Sample Value" - -parameter = command.Parameters.Add( _ - "@OutputParm", OleDbType.VarChar, 28) -parameter.Direction = ParameterDirection.Output -``` - -```csharp -OleDbCommand command = new OleDbCommand("SampleProc", connection); -command.CommandType = CommandType.StoredProcedure; - -OleDbParameter parameter = command.Parameters.Add( - "RETURN_VALUE", OleDbType.Integer); -parameter.Direction = ParameterDirection.ReturnValue; - -parameter = command.Parameters.Add( - "@InputParm", OleDbType.VarChar, 12); -parameter.Value = "Sample Value"; - -parameter = command.Parameters.Add( - "@OutputParm", OleDbType.VarChar, 28); -parameter.Direction = ParameterDirection.Output; -``` - -## Odbc Example - -```vb -Dim command As OdbcCommand = New OdbcCommand( _ - "{ ? = CALL SampleProc(?, ?) }", connection) -command.CommandType = CommandType.StoredProcedure - -Dim parameter As OdbcParameter = command.Parameters.Add("RETURN_VALUE", OdbcType.Int) -parameter.Direction = ParameterDirection.ReturnValue - -parameter = command.Parameters.Add( _ - "@InputParm", OdbcType.VarChar, 12) -parameter.Value = "Sample Value" - -parameter = command.Parameters.Add( _ - "@OutputParm", OdbcType.VarChar, 28) -parameter.Direction = ParameterDirection.Output -``` - -```csharp -OdbcCommand command = new OdbcCommand( _ - "{ ? = CALL SampleProc(?, ?) }", connection); -command.CommandType = CommandType.StoredProcedure; - -OdbcParameter parameter = command.Parameters.Add( _ - "RETURN_VALUE", OdbcType.Int); -parameter.Direction = ParameterDirection.ReturnValue; - -parameter = command.Parameters.Add( _ - "@InputParm", OdbcType.VarChar, 12); -parameter.Value = "Sample Value"; - -parameter = command.Parameters.Add( _ - "@OutputParm", OdbcType.VarChar, 28); -parameter.Direction = ParameterDirection.Output; -``` - -## See Also - [Commands and Parameters](../../../../docs/framework/data/adonet/commands-and-parameters.md) - [DataAdapter Parameters](../../../../docs/framework/data/adonet/dataadapter-parameters.md) - [Data Type Mappings in ADO.NET](../../../../docs/framework/data/adonet/data-type-mappings-in-ado-net.md) - [ADO.NET Managed Providers and DataSet Developer Center](https://go.microsoft.com/fwlink/?LinkId=217917) +> Instead of creating `SqlCommand` and `SqlParameter` objects and then setting properties in separate statements, you can instead elect to use one of the overloaded constructors to set multiple properties in a single statement. + +[!code-csharp[DataWorks SqlClient.StoredProcedure#1](../../../../samples/snippets/csharp/VS_Snippets_ADO.NET/DataWorks SqlClient.StoredProcedure/CS/source.cs#1)] +[!code-vb[DataWorks SqlClient.StoredProcedure#1](../../../../samples/snippets/visualbasic/VS_Snippets_ADO.NET/DataWorks SqlClient.StoredProcedure/VB/source.vb#1)] + +## Using parameters with an OleDbCommand or OdbcCommand + +When using parameters with an or , the order of the parameters added to the `Parameters` collection must match the order of the parameters defined in your stored procedure. The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for OLE DB and [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for ODBC treat parameters in a stored procedure as placeholders and apply parameter values in order. In addition, return value parameters must be the first parameters added to the `Parameters` collection. + +The [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for OLE DB and [!INCLUDE[dnprdnshort](../../../../includes/dnprdnshort-md.md)] Data Provider for ODBC do not support named parameters for passing parameters to an SQL statement or a stored procedure. In this case, you must use the question mark (?) placeholder, as in the following example. + +```sql +SELECT * FROM Customers WHERE CustomerID = ? +``` + +As a result, the order in which `Parameter` objects are added to the `Parameters` collection must directly correspond to the position of the ? placeholder for the parameter. + +### OleDb Example + +```vb +Dim command As OleDbCommand = New OleDbCommand( _ + "SampleProc", connection) +command.CommandType = CommandType.StoredProcedure + +Dim parameter As OleDbParameter = command.Parameters.Add( _ + "RETURN_VALUE", OleDbType.Integer) +parameter.Direction = ParameterDirection.ReturnValue + +parameter = command.Parameters.Add( _ + "@InputParm", OleDbType.VarChar, 12) +parameter.Value = "Sample Value" + +parameter = command.Parameters.Add( _ + "@OutputParm", OleDbType.VarChar, 28) +parameter.Direction = ParameterDirection.Output +``` + +```csharp +OleDbCommand command = new OleDbCommand("SampleProc", connection); +command.CommandType = CommandType.StoredProcedure; + +OleDbParameter parameter = command.Parameters.Add( + "RETURN_VALUE", OleDbType.Integer); +parameter.Direction = ParameterDirection.ReturnValue; + +parameter = command.Parameters.Add( + "@InputParm", OleDbType.VarChar, 12); +parameter.Value = "Sample Value"; + +parameter = command.Parameters.Add( + "@OutputParm", OleDbType.VarChar, 28); +parameter.Direction = ParameterDirection.Output; +``` + +## Odbc Example + +```vb +Dim command As OdbcCommand = New OdbcCommand( _ + "{ ? = CALL SampleProc(?, ?) }", connection) +command.CommandType = CommandType.StoredProcedure + +Dim parameter As OdbcParameter = command.Parameters.Add("RETURN_VALUE", OdbcType.Int) +parameter.Direction = ParameterDirection.ReturnValue + +parameter = command.Parameters.Add( _ + "@InputParm", OdbcType.VarChar, 12) +parameter.Value = "Sample Value" + +parameter = command.Parameters.Add( _ + "@OutputParm", OdbcType.VarChar, 28) +parameter.Direction = ParameterDirection.Output +``` + +```csharp +OdbcCommand command = new OdbcCommand( _ + "{ ? = CALL SampleProc(?, ?) }", connection); +command.CommandType = CommandType.StoredProcedure; + +OdbcParameter parameter = command.Parameters.Add( _ + "RETURN_VALUE", OdbcType.Int); +parameter.Direction = ParameterDirection.ReturnValue; + +parameter = command.Parameters.Add( _ + "@InputParm", OdbcType.VarChar, 12); +parameter.Value = "Sample Value"; + +parameter = command.Parameters.Add( _ + "@OutputParm", OdbcType.VarChar, 28); +parameter.Direction = ParameterDirection.Output; +``` + +## See also + +- [Commands and Parameters](commands-and-parameters.md) +- [DataAdapter Parameters](dataadapter-parameters.md) +- [Data Type Mappings in ADO.NET](data-type-mappings-in-ado-net.md) +- [ADO.NET Overview](ado-net-overview.md) diff --git a/docs/framework/data/adonet/sql/windows-applications-using-callbacks.md b/docs/framework/data/adonet/sql/windows-applications-using-callbacks.md index 4b8c6f9fc7cdc..a72759492db67 100644 --- a/docs/framework/data/adonet/sql/windows-applications-using-callbacks.md +++ b/docs/framework/data/adonet/sql/windows-applications-using-callbacks.md @@ -121,9 +121,7 @@ Imports System.Data.SqlClient Catch ex As Exception isExecuting = False - DisplayStatus( _ - String.Format("Ready (last error: {0})", _ - ex.Message)) + DisplayStatus($"Ready (last error: {ex.Message})") If connection IsNot Nothing Then connection.Close() End If @@ -177,7 +175,7 @@ Imports System.Data.SqlClient ' invoke it, like this: Me.Invoke(New _ DisplayInfoDelegate(AddressOf DisplayStatus), _ - String.Format("Ready(last error: {0}", ex.Message)) + $"Ready (last error: {ex.Message}") Finally isExecuting = False If connection IsNot Nothing Then @@ -295,8 +293,7 @@ private void button1_Click(object sender, System.EventArgs e) catch (Exception ex) { isExecuting = false; - DisplayStatus( - string.Format("Ready (last error: {0})", ex.Message)); + DisplayStatus($"Ready (last error: {ex.Message})"); if (connection != null) { connection.Close(); @@ -352,7 +349,7 @@ private void HandleCallback(IAsyncResult result) // You can create the delegate instance as you // invoke it, like this: this.Invoke(new DisplayInfoDelegate(DisplayStatus), - String.Format("Ready(last error: {0}", ex.Message)); + $"Ready (last error: {ex.Message}"); } finally { diff --git a/docs/framework/data/adonet/updating-data-sources-with-dataadapters.md b/docs/framework/data/adonet/updating-data-sources-with-dataadapters.md index ffd9a976ccc7f..1d9d902731726 100644 --- a/docs/framework/data/adonet/updating-data-sources-with-dataadapters.md +++ b/docs/framework/data/adonet/updating-data-sources-with-dataadapters.md @@ -288,9 +288,9 @@ class Program { // Build the query string String primaryCols = String.Join(",", primaryColumns.Select(col => col.ColumnName)); - String resetCols = String.Join(",", resetColumns.Select(col => "Max(" + col.ColumnName + ") as " + col.ColumnName)); + String resetCols = String.Join(",", resetColumns.Select(col => $"Max({col.ColumnName}) as {col.ColumnName}")); - String selectString = String.Format("Select {0},{1} from Course Group by {0}", primaryCols, resetCols); + String selectString = $"Select {primaryCols},{resetCols} from Course Group by {primaryCols}"); SqlCommand selectCommand = new SqlCommand(selectString); diff --git a/docs/framework/wcf/configuring-wcf-services-in-code.md b/docs/framework/wcf/configuring-wcf-services-in-code.md index df4710b93e314..c9440e7710774 100644 --- a/docs/framework/wcf/configuring-wcf-services-in-code.md +++ b/docs/framework/wcf/configuring-wcf-services-in-code.md @@ -32,7 +32,7 @@ public class Service1 : IService1 public string GetData(int value) { - return string.Format("You entered: {0}", value); + return $"You entered: {value}"; } public CompositeType GetDataUsingDataContract(CompositeType composite) diff --git a/docs/framework/wcf/diagnostics/wmi/index.md b/docs/framework/wcf/diagnostics/wmi/index.md index 8444e9350f8bb..2be8a1e3aca0e 100644 --- a/docs/framework/wcf/diagnostics/wmi/index.md +++ b/docs/framework/wcf/diagnostics/wmi/index.md @@ -166,8 +166,7 @@ Whoami /user You can also access remote WMI instances programmatically by using classes provided by the namespace. The following code sample demonstrates how to do this. ```csharp -String wcfNamespace = String.Format(@"\\{0}\Root\ServiceModel", - this.serviceMachineName); +String wcfNamespace = $@"\\{this.serviceMachineName}\Root\ServiceModel"); ConnectionOptions connection = new ConnectionOptions(); connection.Authentication = AuthenticationLevel.PacketPrivacy; diff --git a/docs/framework/wcf/feature-details/creating-multicasting-applications-using-the-udp-transport.md b/docs/framework/wcf/feature-details/creating-multicasting-applications-using-the-udp-transport.md index 9841c8179cc0b..967889acfa405 100644 --- a/docs/framework/wcf/feature-details/creating-multicasting-applications-using-the-udp-transport.md +++ b/docs/framework/wcf/feature-details/creating-multicasting-applications-using-the-udp-transport.md @@ -9,7 +9,7 @@ Multicasting applications send small messages to a large number of recipients at ## Implementing a Multicast Application To implement a multicast application, define a service contract and for each software component that needs to respond to the multicast messages, implement the service contract. For example, a stock ticker application might define a service contract: -``` +```csharp // Shared contracts between the client and the service [ServiceContract] interface IStockTicker @@ -37,7 +37,7 @@ class StockInfo Each application that wants to receive multicast messages must host a service that exposes this interface. For example, here is a code sample that illustrates how to receive multicast messages: -``` +```csharp // Service Address string serviceAddress = "soap.udp://224.0.0.1:40000"; // Binding @@ -57,7 +57,7 @@ Console.ReadLine(); In this type of a scenario it is the client that actually sends out multicast messages. Each service that is listening at the correct UDP address will receive the multicast messages. Here is an example of a client that sends out multicast messages: -``` +```csharp // Multicast Address string serviceAddress = "soap.udp://224.0.0.1:40000"; @@ -76,7 +76,7 @@ while (true) { // This will continue to mulicast stock information proxy.SendStockInfo(GetStockInfo()); - Console.WriteLine(String.Format("sent stock info at {0}", DateTime.Now)); + Console.WriteLine($"sent stock info at {DateTime.Now}"); // Wait for one second before sending another update System.Threading.Thread.Sleep(new TimeSpan(0, 0, 1)); } @@ -90,7 +90,7 @@ while (true) ### Two-way Multicast Messaging While multicast messages are generally one-way, the UdpBinding does support request/reply message exchange. Messages sent using the UDP transport contain both a From and To address. Care must be taken when using the From address as it could be maliciously changed en-route. The address can be checked using the following code: -``` +```csharp if (address.AddressFamily == AddressFamily.InterNetwork) { // IPv4 diff --git a/docs/framework/wcf/feature-details/how-to-create-a-transactional-service.md b/docs/framework/wcf/feature-details/how-to-create-a-transactional-service.md index 94ebdc81e431c..2589ae3d46abb 100644 --- a/docs/framework/wcf/feature-details/how-to-create-a-transactional-service.md +++ b/docs/framework/wcf/feature-details/how-to-create-a-transactional-service.md @@ -10,7 +10,7 @@ This sample demonstrates various aspects of creating a transactional service and 1. Create a service contract and annotate the operations with the desired setting from the enumeration to specify the incoming transaction requirements. Note that you can also place the on the service class being implemented. This allows for a single implementation of an interface to use these transaction settings, instead of every implementation. - ``` + ```csharp [ServiceContract] public interface ICalculator { @@ -27,7 +27,7 @@ This sample demonstrates various aspects of creating a transactional service and 2. Create an implementation class, and use the to optionally specify a and a . You should note that in many cases, the default of 60 seconds and the default of `Unspecified` are appropriate. For each operation, you can use the attribute to specify whether work performed within the method should occur within the scope of a transaction scope according to the value of the attribute. In this case, the transaction used for the `Add` method is the same as the mandatory incoming transaction that is flowed from the client, and the transaction used for the `Subtract` method is either the same as the incoming transaction if one was flowed from the client, or a new implicitly and locally created transaction. - ``` + ```csharp [ServiceBehavior( TransactionIsolationLevel = System.Transactions.IsolationLevel.Serializable, TransactionTimeout = "00:00:45")] @@ -37,7 +37,7 @@ This sample demonstrates various aspects of creating a transactional service and public double Add(double n1, double n2) { // Perform transactional operation - RecordToLog(String.Format("Adding {0} to {1}", n1, n2)); + RecordToLog($"Adding {n1} to {n2}"); return n1 + n2; } @@ -45,7 +45,7 @@ This sample demonstrates various aspects of creating a transactional service and public double Subtract(double n1, double n2) { // Perform transactional operation - RecordToLog(String.Format("Subtracting {0} from {1}", n2, n1)); + RecordToLog($"Subtracting {n2} from {n1}"); return n1 - n2; } @@ -122,7 +122,7 @@ This sample demonstrates various aspects of creating a transactional service and 1. By default, WCF operations automatically complete transactions if no unhandled exceptions are thrown. You can modify this behavior by using the property and the method. When an operation is required to occur within the same transaction as another operation (for example, a debit and credit operation), you can disable the autocomplete behavior by setting the property to `false` as shown in the following `Debit` operation example. The transaction the `Debit` operation uses is not completed until a method with the property set to `true` is called, as shown in the operation `Credit1`, or when the method is called to explicitly mark the transaction as complete, as shown in the operation `Credit2`. Note that the two credit operations are shown for illustration purposes, and that a single credit operation would be more typical. - ``` + ```csharp [ServiceBehavior] public class CalculatorService : IAccount { @@ -158,7 +158,7 @@ This sample demonstrates various aspects of creating a transactional service and 2. For the purposes of transaction correlation, setting the property to `false` requires the use of a sessionful binding. This requirement is specified with the `SessionMode` property on the . - ``` + ```csharp [ServiceContract(SessionMode = SessionMode.Required)] public interface IAccount { @@ -178,7 +178,7 @@ This sample demonstrates various aspects of creating a transactional service and 1. WCF uses the property to specify whether the underlying service instance is released when a transaction completes. Since this defaults to `true`, unless configured otherwise, WCF exhibits an efficient and predictable "just-in-time" activation behavior. Calls to a service on a subsequent transaction are assured a new service instance with no remnants of the previous transaction's state. While this is often useful, sometimes you may want to maintain state within the service instance beyond the transaction completion. Examples of this would be when required state or handles to resources are expensive to retrieve or reconstitute. You can do this by setting the property to `false`. With that setting, the instance and any associated state will be available on subsequent calls. When using this, give careful consideration to when and how state and transactions will be cleared and completed. The following sample demonstrates how to do this by maintaining the instance with the `runningTotal` variable. - ``` + ```csharp [ServiceBehavior(TransactionIsolationLevel = [ServiceBehavior( ReleaseServiceInstanceOnTransactionComplete = false)] public class CalculatorService : ICalculator @@ -189,7 +189,7 @@ This sample demonstrates various aspects of creating a transactional service and public double Add(double n) { // Perform transactional operation - RecordToLog(String.Format("Adding {0} to {1}", n, runningTotal)); + RecordToLog($"Adding {n} to {runningTotal}"); runningTotal = runningTotal + n; return runningTotal; } @@ -198,7 +198,7 @@ This sample demonstrates various aspects of creating a transactional service and public double Subtract(double n) { // Perform transactional operation - RecordToLog(String.Format("Subtracting {0} from {1}", n, runningTotal)); + RecordToLog($"Subtracting {n} from {runningTotal}"); runningTotal = runningTotal - n; return runningTotal; } diff --git a/docs/framework/wcf/feature-details/wcf-web-http-formatting.md b/docs/framework/wcf/feature-details/wcf-web-http-formatting.md index b4de80b0ac6ff..5e8f61052c36e 100644 --- a/docs/framework/wcf/feature-details/wcf-web-http-formatting.md +++ b/docs/framework/wcf/feature-details/wcf-web-http-formatting.md @@ -95,22 +95,22 @@ public class Service : IService [WebGet] public string EchoWithGet(string s) { - // if a format query string parameter has been specified, set the response format to that. If no such - // query string parameter exists the Accept header will be used + // if a format query string parameter has been specified, set the response format to that. If no such + // query string parameter exists the Accept header will be used string formatQueryStringValue = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["format"]; if (!string.IsNullOrEmpty(formatQueryStringValue)) { - if (formatQueryStringValue.Equals("xml", System.StringComparison.OrdinalIgnoreCase)) - { - WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Xml; - } - else if (formatQueryStringValue.Equals("json", System.StringComparison.OrdinalIgnoreCase)) + if (formatQueryStringValue.Equals("xml", System.StringComparison.OrdinalIgnoreCase)) + { + WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Xml; + } + else if (formatQueryStringValue.Equals("json", System.StringComparison.OrdinalIgnoreCase)) { WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json; } else { - throw new WebFaultException(string.Format("Unsupported format '{0}'", formatQueryStringValue), HttpStatusCode.BadRequest); + throw new WebFaultException($"Unsupported format '{formatQueryStringValue}'", HttpStatusCode.BadRequest); } } return "You said " + s; diff --git a/docs/framework/wcf/migrating-from-net-remoting-to-wcf.md b/docs/framework/wcf/migrating-from-net-remoting-to-wcf.md index c69ee35af6b6b..4a0bab7b46c44 100644 --- a/docs/framework/wcf/migrating-from-net-remoting-to-wcf.md +++ b/docs/framework/wcf/migrating-from-net-remoting-to-wcf.md @@ -83,8 +83,7 @@ using (ServiceHost serviceHost = new ServiceHost(typeof(WCFServer), baseAddress) serviceHost.AddServiceEndpoint(typeof(IWCFServer), binding, baseAddress); serviceHost.Open(); - Console.WriteLine(String.Format("The WCF server is ready at {0}.", - baseAddress)); + Console.WriteLine($"The WCF server is ready at {baseAddress}."); Console.WriteLine("Press to terminate service..."); Console.WriteLine(); Console.ReadLine(); @@ -115,8 +114,7 @@ RemotingServer server = (RemotingServer)Activator.GetObject( "tcp://localhost:8080/RemotingServer"); RemotingCustomer customer = server.GetCustomer(42); -Console.WriteLine(String.Format("Customer {0} {1} received.", - customer.FirstName, customer.LastName)); +Console.WriteLine($"Customer {customer.FirstName} {customer.LastName} received."); ``` The RemotingServer instance returned from Activator.GetObject() is known as a "transparent proxy." It implements the public API for the RemotingServer type on the client, but all the methods call the server object running in a different process or machine. @@ -133,8 +131,7 @@ ChannelFactory channelFactory = IWCFServer server = channelFactory.CreateChannel(); Customer customer = server.GetCustomer(42); -Console.WriteLine(String.Format(" Customer {0} {1} received.", - customer.FirstName, customer.LastName)); +Console.WriteLine($" Customer {customer.FirstName} {customer.LastName} received."); ``` This example shows programming at the channel level because it is most similar to the Remoting example. Also available is the **Add Service Reference** approach in Visual Studio that generates code to simplify client programming. For more information, see the following topics: @@ -263,8 +260,7 @@ try } catch (FaultException fault) { - Console.WriteLine(String.Format("Fault received: {0}", - fault.Detail.ErrorMessage)); + Console.WriteLine($"Fault received: {fault.Detail.ErrorMessage}"); } ``` @@ -445,8 +441,7 @@ public class RemotingServer : MarshalByRefObject new ChannelFactory("customerservice"); ICustomerService service = factory.CreateChannel(); Customer customer = service.GetCustomer(42); - Console.WriteLine(String.Format(" Customer {0} {1} received.", - customer.FirstName, customer.LastName)); + Console.WriteLine($" Customer {customer.FirstName} {customer.LastName} received."); ``` Objects returned by WCF from the server to the client are always by value. The objects are deserialized copies of the data sent by the server. The client can call methods on these local copies without any danger of invoking server code through callbacks. @@ -651,7 +646,7 @@ public class RemotingServer : MarshalByRefObject CustomerId = 43, AccountId = 99}; bool success = service.UpdateCustomer(customer); - Console.WriteLine(String.Format(" Server returned {0}.", success)); + Console.WriteLine($" Server returned {success}."); ``` The customer object will be serialized, and sent to the server, where it is deserialized into a new copy of that object. diff --git a/docs/framework/wcf/samples/custom-message-encoder-custom-text-encoder.md b/docs/framework/wcf/samples/custom-message-encoder-custom-text-encoder.md index 1dd1c527cdbc8..c494eb2b51c7e 100644 --- a/docs/framework/wcf/samples/custom-message-encoder-custom-text-encoder.md +++ b/docs/framework/wcf/samples/custom-message-encoder-custom-text-encoder.md @@ -59,8 +59,7 @@ public class CustomTextMessageEncoder : MessageEncoder this.writerSettings = new XmlWriterSettings(); this.writerSettings.Encoding = Encoding.GetEncoding(factory.CharSet); - this.contentType = string.Format("{0}; charset={1}", - this.factory.MediaType, this.writerSettings.Encoding.HeaderName); + this.contentType = $"{this.factory.MediaType}; charset={this.writerSettings.Encoding.HeaderName}"; } public override string ContentType diff --git a/docs/framework/wcf/samples/custom-token.md b/docs/framework/wcf/samples/custom-token.md index 89ee219bb2cc0..ac14a8ea47ea9 100644 --- a/docs/framework/wcf/samples/custom-token.md +++ b/docs/framework/wcf/samples/custom-token.md @@ -22,7 +22,7 @@ This sample demonstrates how to add a custom token implementation into a Windows ## Client Authentication Using a Custom Security Token The service exposes a single endpoint that is programmatically created using `BindingHelper` and `EchoServiceHost` classes. The endpoint consists of an address, a binding, and a contract. The binding is configured with a custom binding using `SymmetricSecurityBindingElement` and `HttpTransportBindingElement`. This sample sets the `SymmetricSecurityBindingElement` to use a service's X.509 certificate to protect the symmetric key during transmission and to pass a custom `CreditCardToken` in a WS-Security message header as a signed and encrypted security token. The behavior specifies the service credentials that are to be used for client authentication and also information about the service X.509 certificate. -``` +```csharp public static class BindingHelper { public static Binding CreateCreditCardBinding() @@ -43,7 +43,7 @@ public static class BindingHelper To consume a credit card token in the message, the sample uses custom service credentials to provide this functionality. The service credentials class is located in the `CreditCardServiceCredentials` class and is added to the behaviors collections of the service host in the `EchoServiceHost.InitializeRuntime` method. -``` +```csharp class EchoServiceHost : ServiceHost { string creditCardFile; @@ -58,7 +58,6 @@ class EchoServiceHost : ServiceHost } creditCardFile = String.Format("{0}\\{1}", System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, creditCardFile); - } override protected void InitializeRuntime() @@ -80,13 +79,12 @@ class EchoServiceHost : ServiceHost The client endpoint is configured in a similar manner as the service endpoint. The client uses the same `BindingHelper` class to create a binding. The rest of the setup is located in the `Client` class. The client also sets information to be contained in the `CreditCardToken` and information about the service X.509 certificate in the setup code by adding a `CreditCardClientCredentials` instance with the proper data to the client endpoint behaviors collection. The sample uses X.509 certificate with subject name set to `CN=localhost` as the service certificate. -``` +```csharp Binding creditCardBinding = BindingHelper.CreateCreditCardBinding(); EndpointAddress serviceAddress = new EndpointAddress("http://localhost/servicemodelsamples/service.svc"); // Create a client with given client endpoint configuration -channelFactory = -new ChannelFactory(creditCardBinding, serviceAddress); +channelFactory = new ChannelFactory(creditCardBinding, serviceAddress); // configure the credit card credentials on the channel factory CreditCardClientCredentials credentials = @@ -113,7 +111,7 @@ channelFactory.Close(); The next section describes what must be done to enable a custom token to be transmitted over the wire and consumed by a WCF endpoint. -``` +```csharp class CreditCardToken : SecurityToken { CreditCardInfo cardInfo; @@ -155,7 +153,7 @@ class CreditCardToken : SecurityToken On the client, the `CreditCardSecurityTokenSerializer` class writes the information contained in the security token object representation into the XML writer. -``` +```csharp public class CreditCardSecurityTokenSerializer : WSSecurityTokenSerializer { public CreditCardSecurityTokenSerializer(SecurityTokenVersion version) : base() { } @@ -251,7 +249,7 @@ public class CreditCardSecurityTokenSerializer : WSSecurityTokenSerializer On the service, the functionality resides in the `CreditCardServiceCredentials`, `CreditCardServiceCredentialsSecurityTokenManager`, `CreditCardTokenAuthenticator` and `CreditCardTokenAuthorizationPolicy` classes. -``` +```csharp public class CreditCardClientCredentials : ClientCredentials { CreditCardInfo creditCardInfo; @@ -281,7 +279,7 @@ public class CreditCardSecurityTokenSerializer : WSSecurityTokenSerializer } } -public class CreditCardClientCredentialsSecurityTokenManager : ClientCredentialsSecurityTokenManager + public class CreditCardClientCredentialsSecurityTokenManager : ClientCredentialsSecurityTokenManager { CreditCardClientCredentials creditCardClientCredentials; @@ -336,7 +334,7 @@ public class CreditCardClientCredentialsSecurityTokenManager : ClientCredentials } } -public class CreditCardServiceCredentials : ServiceCredentials + public class CreditCardServiceCredentials : ServiceCredentials { string creditCardFile; @@ -365,8 +363,8 @@ public class CreditCardServiceCredentials : ServiceCredentials } } -public class CreditCardServiceCredentialsSecurityTokenManager : ServiceCredentialsSecurityTokenManager -{ + public class CreditCardServiceCredentialsSecurityTokenManager : ServiceCredentialsSecurityTokenManager + { CreditCardServiceCredentials creditCardServiceCredentials; public CreditCardServiceCredentialsSecurityTokenManager(CreditCardServiceCredentials creditCardServiceCredentials) @@ -496,12 +494,11 @@ public class CreditCardServiceCredentialsSecurityTokenManager : ServiceCredentia ## Displaying the Callers' Information To display the caller's information, use the `ServiceSecurityContext.Current.AuthorizationContext.ClaimSets` as shown in the following sample code. The `ServiceSecurityContext.Current.AuthorizationContext.ClaimSets` contains authorization claims associated with the current caller. The claims are supplied by the `CreditCardToken` class in its `AuthorizationPolicies` collection. -``` +```csharp bool TryGetStringClaimValue(ClaimSet claimSet, string claimType, out string claimValue) { claimValue = null; - IEnumerable matchingClaims = claimSet.FindClaims(claimType, - Rights.PossessProperty); + IEnumerable matchingClaims = claimSet.FindClaims(claimType, Rights.PossessProperty); if (matchingClaims == null) return false; IEnumerator enumerator = matchingClaims.GetEnumerator(); @@ -526,9 +523,7 @@ string GetCallerCreditCardNumber() { issuer = "Unknown"; } - return String.Format( - "Credit card '{0}' issued by '{1}'", - creditCardNumber, issuer); + return $"Credit card '{creditCardNumber}' issued by '{issuer}'"; } } return "Credit card is not known"; diff --git a/docs/framework/wcf/samples/datacontractserializer-sample.md b/docs/framework/wcf/samples/datacontractserializer-sample.md index 7c9922a509e27..5fd4abffdcc85 100644 --- a/docs/framework/wcf/samples/datacontractserializer-sample.md +++ b/docs/framework/wcf/samples/datacontractserializer-sample.md @@ -60,8 +60,7 @@ internal class Record public override string ToString() { - return string.Format("Record: {0} {1} {2} = {3}", n1, - operation, n2, result); + return $"Record: {n1} {operation} {n2} = {result}"; } } ``` diff --git a/docs/framework/wcf/samples/net-tcp-port-sharing-sample.md b/docs/framework/wcf/samples/net-tcp-port-sharing-sample.md index 831aa662186cd..cb01c604ede87 100644 --- a/docs/framework/wcf/samples/net-tcp-port-sharing-sample.md +++ b/docs/framework/wcf/samples/net-tcp-port-sharing-sample.md @@ -38,8 +38,7 @@ binding.PortSharingEnabled = true; // Start a service on a fixed TCP port ServiceHost host = new ServiceHost(typeof(CalculatorService)); ushort salt = (ushort)new Random().Next(); -string address = - String.Format("net.tcp://localhost:9000/calculator/{0}", salt); +string address = $"net.tcp://localhost:9000/calculator/{salt}"; host.AddServiceEndpoint(typeof(ICalculator), binding, address); host.Open(); ``` @@ -60,7 +59,7 @@ class client { Console.Write("Enter the service number to test: "); ushort salt = ushort.Parse(Console.ReadLine()); - string address = String.Format("net.tcp://localhost:9000/calculator/{0}", salt); + string address = $"net.tcp://localhost:9000/calculator/{salt}"; ChannelFactory factory = new ChannelFactory(new NetTcpBinding()); ICalculator proxy = factory.CreateChannel(new EndpointAddress(address)); diff --git a/docs/framework/wcf/samples/supporting-tokens.md b/docs/framework/wcf/samples/supporting-tokens.md index d4263a5b0db7a..ba57f603aab4f 100644 --- a/docs/framework/wcf/samples/supporting-tokens.md +++ b/docs/framework/wcf/samples/supporting-tokens.md @@ -21,7 +21,7 @@ The Supporting Tokens sample demonstrates how to add additional tokens to a mess ## Client Authenticates with Username Token and Supporting X.509 Security Token The service exposes a single endpoint for communicating that is programmatically created using the `BindingHelper` and `EchoServiceHost` classes. The endpoint consists of an address, a binding, and a contract. The binding is configured with a custom binding using `SymmetricSecurityBindingElement` and `HttpTransportBindingElement`. This sample sets the `SymmetricSecurityBindingElement` to use a service X.509 certificate to protect the symmetric key during transmission and to pass a `UserNameToken` along with the supporting `X509SecurityToken` in a WS-Security message header. The symmetric key is used to encrypt the message body and the username security token. The supporting token is passed as an additional binary security token in the WS-Security message header. The authenticity of the supporting token is proved by signing part of the message with the private key associated with the supporting X.509 security token. -``` +```csharp public static Binding CreateMultiFactorAuthenticationBinding() { HttpTransportBindingElement httpTransport = new HttpTransportBindingElement(); @@ -49,7 +49,7 @@ public static Binding CreateMultiFactorAuthenticationBinding() The behavior specifies the service credentials that are to be used for client authentication and also information about the service X.509 certificate. The sample uses `CN=localhost` as a subject name in the service X.509 certificate. -``` +```csharp override protected void InitializeRuntime() { // Extract the ServiceCredentials behavior or create one. @@ -82,7 +82,7 @@ This setting is less secure than the default, ChainTrust. The security implicati Service code: -``` +```csharp [ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class EchoService : IEchoService { @@ -94,8 +94,7 @@ public class EchoService : IEchoService OperationContext.Current.ServiceSecurityContext, out userName, out certificateSubjectName); - return String.Format("Hello {0}, {1}", - userName, certificateSubjectName); + return $"Hello {userName}, {certificateSubjectName}"; } public void Dispose() @@ -168,7 +167,7 @@ public class EchoService : IEchoService The client endpoint is configured in a similar way to the service endpoint. The client uses the same `BindingHelper` class to create a binding. The rest of the setup is located in `Client` class. The client sets information about the user name security token, the supporting X.509 security token and information about the service X.509 certificate in the setup code to the client endpoint behaviors collection. -``` +```csharp static void Main() { // Create the custom binding and an endpoint address for @@ -279,7 +278,7 @@ public class EchoService : IEchoService ## Displaying Callers' Information To display the caller's information, you can use the `ServiceSecurityContext.Current.AuthorizationContext.ClaimSets` as shown in the following code. The `ServiceSecurityContext.Current.AuthorizationContext.ClaimSets` contains authorization claims associated with the current caller. Those claims are supplied automatically by Windows Communication Foundation (WCF) for every token received in the message. -``` +```csharp bool TryGetClaimValue(ClaimSet claimSet, string claimType, out TClaimResource resourceValue) where TClaimResource : class diff --git a/docs/framework/wcf/services-and-transactions.md b/docs/framework/wcf/services-and-transactions.md index acdb43b04050e..37a27de8ca721 100644 --- a/docs/framework/wcf/services-and-transactions.md +++ b/docs/framework/wcf/services-and-transactions.md @@ -14,7 +14,7 @@ Windows Communication Foundation (WCF) applications can initiate a transaction f The following sample demonstrates usage of the and attributes to control service-side transaction behavior. -``` +```csharp [ServiceBehavior(TransactionIsolationLevel = System.Transactions.IsolationLevel.Serializable)] public class CalculatorService: ICalculatorLog { @@ -22,7 +22,7 @@ public class CalculatorService: ICalculatorLog TransactionAutoComplete = true)] public double Add(double n1, double n2) { - recordToLog(String.Format("Added {0} to {1}", n1, n2)); + recordToLog($"Added {n1} to {n2}"); return n1 + n2; } @@ -30,7 +30,7 @@ public class CalculatorService: ICalculatorLog TransactionAutoComplete = true)] public double Subtract(double n1, double n2) { - recordToLog(String.Format("Subtracted {0} from {1}", n1, n2)); + recordToLog($"Subtracted {n1} from {n2}"); return n1 - n2; } @@ -38,7 +38,7 @@ public class CalculatorService: ICalculatorLog TransactionAutoComplete = true)] public double Multiply(double n1, double n2) { - recordToLog(String.Format("Multiplied {0} by {1}", n1, n2)); + recordToLog($"Multiplied {n1} by {n2}"); return n1 * n2; } @@ -46,7 +46,7 @@ public class CalculatorService: ICalculatorLog TransactionAutoComplete = true)] public double Divide(double n1, double n2) { - recordToLog(String.Format("Divided {0} by {1}", n1, n2)); + recordToLog($"Divided {n1} by {n2}", n1, n2); return n1 / n2; } @@ -74,7 +74,7 @@ public class CalculatorService: ICalculatorLog Clients can begin a transaction by creating a and invoking service operations within the scope of the transaction. -``` +```csharp using (TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew)) { //Do work here diff --git a/docs/fsharp/language-reference/compiler-directives.md b/docs/fsharp/language-reference/compiler-directives.md index 79acb69197d4e..d954c9ec01167 100644 --- a/docs/fsharp/language-reference/compiler-directives.md +++ b/docs/fsharp/language-reference/compiler-directives.md @@ -1,7 +1,7 @@ --- title: Compiler Directives (F#) description: Learn about F# language preprocessor directives, conditional compilation directives, line directives, and compiler directives. -ms.date: 05/16/2016 +ms.date: 12/10/2018 --- # Compiler Directives @@ -15,7 +15,7 @@ The following table lists the preprocessor directives that are available in F#. |Directive|Description| |---------|-----------| -|`#if` *symbol*|Supports conditional compilation. Code in the section after the `#if` is included if the *symbol* is defined.| +|`#if` *symbol*|Supports conditional compilation. Code in the section after the `#if` is included if the *symbol* is defined. The symbol can also be negated with `!`.| |`#else`|Supports conditional compilation. Marks a section of code to include if the symbol used with the previous `#if` is not defined.| |`#endif`|Supports conditional compilation. Marks the end of a conditional section of code.| |`#`[line] *int*,
`#`[line] *int* *string*,
`#`[line] *int* *verbatim-string*|Indicates the original source code line and file name, for debugging. This feature is provided for tools that generate F# source code.| @@ -40,6 +40,16 @@ There is no `#define` preprocessor directive in F#. You must use the compiler op Conditional compilation directives can be nested. Indentation is not significant for preprocessor directives. +You can also negate a symbol with `!`. In this example, a string's value is something only when _not_ debugging: + +```fsharp +#if !DEBUG +let str = "Not debugging!" +#else +let str = "Debugging!" +#endif +``` + ## Line Directives When building, the compiler reports errors in F# code by referencing line numbers on which each error occurs. These line numbers start at 1 for the first line in a file. However, if you are generating F# source code from another tool, the line numbers in the generated code are generally not of interest, because the errors in the generated F# code most likely arise from another source. The `#line` directive provides a way for authors of tools that generate F# source code to pass information about the original line numbers and source files to the generated F# code. @@ -59,6 +69,7 @@ The following table lists the compiler directive that is available in F#. |Directive|Description| |---------|-----------| |`#light` ["on"|"off"]|Enables or disables lightweight syntax, for compatibility with other versions of ML. By default, lightweight syntax is enabled. Verbose syntax is always enabled. Therefore, you can use both lightweight syntax and verbose syntax. The directive `#light` by itself is equivalent to `#light "on"`. If you specify `#light "off"`, you must use verbose syntax for all language constructs. Syntax in the documentation for F# is presented with the assumption that you are using lightweight syntax. For more information, see [Verbose Syntax](verbose-syntax.md).| + For interpreter (fsi.exe) directives, see [Interactive Programming with F#](../tutorials/fsharp-interactive/index.md). ## See also diff --git a/docs/machine-learning/how-to-guides/index.md b/docs/machine-learning/how-to-guides/index.md index 69701d300a18b..c73b76101b464 100644 --- a/docs/machine-learning/how-to-guides/index.md +++ b/docs/machine-learning/how-to-guides/index.md @@ -9,17 +9,9 @@ ms.date: 12/04/2018 In the How to section of the ML.NET Guide, you can find quick answers to common questions. In some cases, articles may be listed in multiple sections to make them easy to find. -* [Apply feature engineering for model training on categorical data.](train-model-categorical-ml-net.md) - -* [Apply feature engineering for model training on textual data with ML.NET.](train-model-textual-ml-net.md) - -* [Determine the feature importance of models with Permutation Feature Importance.](determine-global-feature-importance-in-model.md) - -* [Calculate metrics to evaluate model quality.](verify-model-quality-ml-net.md) - -* [Create a game match up list app with Infer.NET and probabilistic programming.](matchup-app-infer-net.md) +## Prepare data -* [Inspect intermediate data values during ML.NET pipeline processing.](inspect-intermediate-data-ml-net.md) +### Load data * [Load data with many columns from a CSV file for machine learning processing.](load-data-from-mult-column-csv-ml-net.md) @@ -27,16 +19,41 @@ to common questions. In some cases, articles may be listed in multiple sections * [Load data from a text file for machine learning processing.](load-data-from-text-file-ml-net.md) -* [Operationalize a trained machine learning model in apps.](consuming-model-ml-net.md) +* [Preprocess training data with normalizers to use in data processing.](normalizers-preprocess-data-ml-net.md) -* [Train a machine learning model with data that's not in a text file.](load-non-file-training-data-ml-net.md) +## Train model -* [Preprocess training data with normalizers to use in data processing.](normalizers-preprocess-data-ml-net.md) +* [Train a machine learning model with data that's not in a text file.](load-non-file-training-data-ml-net.md) * [Train a machine learning model using cross-validation.](train-cross-validation-ml-net.md) * [Train a regression model to predict a value using ML.NET.](train-regression-model-ml-net.md) +### Evaluate model quality + +* [Calculate metrics to evaluate model quality.](verify-model-quality-ml-net.md) + +### Model explainability + +* [Determine the feature importance of models with Permutation Feature Importance.](determine-global-feature-importance-in-model.md) + * [Use Generalized Additive Models and shape functions for model explainability.](use-gams-for-model-explainability.md) +### Feature engineering + +* [Apply feature engineering for model training on categorical data.](train-model-categorical-ml-net.md) + +* [Apply feature engineering for model training on textual data with ML.NET.](train-model-textual-ml-net.md) + +## Run + +* [Inspect intermediate data values during ML.NET pipeline processing.](inspect-intermediate-data-ml-net.md) + +* [Operationalize a trained machine learning model in apps.](consuming-model-ml-net.md) + * [Use the PredictionFunction to make one prediction at a time.](single-predict-model-ml-net.md) + +## Probabalistic (Infer.NET) + +* [Create a game match up list app with Infer.NET and probabilistic programming.](matchup-app-infer-net.md) + diff --git a/docs/machine-learning/tutorials/taxi-fare.md b/docs/machine-learning/tutorials/taxi-fare.md index 1c37c27635aab..e45401008a8b8 100644 --- a/docs/machine-learning/tutorials/taxi-fare.md +++ b/docs/machine-learning/tutorials/taxi-fare.md @@ -108,7 +108,7 @@ Add the following code right above the `Main` method to specify those paths and [!code-csharp[InitializePaths](../../../samples/machine-learning/tutorials/TaxiFarePrediction/Program.cs#2 "Define variables to store the data file paths")] -When building a model with ML .NET you start by creating an ML Context. This is comparable conceptually to using `DbContext` in Entity Framework. The environment provides a context for your machine learning job that can be used for exception tracking and logging. +When building a model with ML.NET you start by creating an ML Context. This is comparable conceptually to using `DbContext` in Entity Framework. The environment provides a context for your machine learning job that can be used for exception tracking and logging. ### Initialize variables in Main @@ -174,7 +174,7 @@ The last step in data preparation combines all of the feature columns into the * ## Choose a learning algorithm -After adding the data to the pipeline and transforming it into the correct input format, we select a learning algorithm (**learner**). The learner trains the model. We chose a **regression** task for this problem, so we use a `FastTreeRegressionTrainer` learner, which is one of the regression learners provided by ML .NET. +After adding the data to the pipeline and transforming it into the correct input format, we select a learning algorithm (**learner**). The learner trains the model. We chose a **regression** task for this problem, so we use a `FastTreeRegressionTrainer` learner, which is one of the regression learners provided by ML.NET. The `FastTreeRegressionTrainer` learner utilizes gradient boosting. Gradient boosting is a machine learning technique for regression problems. It builds each regression tree in a step-wise fashion. It uses a pre-defined loss function to measure the error in each step and correct for it in the next. The result is a prediction model that is actually an ensemble of weaker prediction models. For more information about gradient boosting, see [Boosted Decision Tree Regression](/azure/machine-learning/studio-module-reference/boosted-decision-tree-regression). diff --git a/docs/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format.md b/docs/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format.md index 96ddfa031f969..5cb1ea1ac3009 100644 --- a/docs/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format.md +++ b/docs/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format.md @@ -1,6 +1,6 @@ --- title: "How to: Verify that Strings Are in Valid Email Format" -ms.date: "08/10/2018" +ms.date: "12/10/2018" ms.technology: dotnet-standard dev_langs: - "csharp" diff --git a/docs/toc.md b/docs/toc.md index 744a9de1d8412..f503cdf2a8f10 100644 --- a/docs/toc.md +++ b/docs/toc.md @@ -256,7 +256,7 @@ ## [Tour of C#](csharp/tour-of-csharp/) -## [What's new in C#](csharp/whats-new/index.md) +## What's new in C# ### [C# 7.3](csharp/whats-new/csharp-7-3.md) ### [C# 7.2](csharp/whats-new/csharp-7-2.md) ### [C# 7.1](csharp/whats-new/csharp-7-1.md) diff --git a/docs/visual-basic/language-reference/statements/try-catch-finally-statement.md b/docs/visual-basic/language-reference/statements/try-catch-finally-statement.md index 672d8f66ee878..e94ff14764c4a 100644 --- a/docs/visual-basic/language-reference/statements/try-catch-finally-statement.md +++ b/docs/visual-basic/language-reference/statements/try-catch-finally-statement.md @@ -1,6 +1,7 @@ --- title: "Try...Catch...Finally Statement (Visual Basic)" -ms.date: 07/20/2015 +description: Learn to use exception handling with Visual Basic Try/Catch/Finally statements. +ms.date: 12/07/2018 f1_keywords: - "vb.Try...Catch...Finally" - "vb.when" @@ -19,13 +20,14 @@ helpviewer_keywords: - "Visual Basic code, handling errors while running" - "structured exception handling, Try...Catch...Finally statements" ms.assetid: d6488026-ccb3-42b8-a810-0d97b9d6472b +ms.custom: seodec18 --- # Try...Catch...Finally Statement (Visual Basic) -Provides a way to handle some or all possible errors that may occur in a given block of code, while still running code. - -## Syntax - -``` +Provides a way to handle some or all possible errors that may occur in a given block of code, while still running code. + +## Syntax + +``` Try [ tryStatements ] [ Exit Try ] @@ -74,7 +76,7 @@ End Try > [!TIP] > The `Try…Catch…Finally` statement is available as an IntelliSense code snippet. In the Code Snippets Manager, expand **Code Patterns - If, For Each, Try Catch, Property, etc**, and then **Error Handling (Exceptions)**. For more information, see [Code Snippets](/visualstudio/ide/code-snippets). -## Finally Block +## Finally block If you have one or more statements that must run before you exit the `Try` structure, use a `Finally` block. Control passes to the `Finally` block just before it passes out of the `Try…Catch` structure. This is true even if an exception occurs anywhere inside the `Try` structure. A `Finally` block is useful for running any code that must execute even if there is an exception. Control is passed to the `Finally` block regardless of how the `Try...Catch` block exits. @@ -92,12 +94,12 @@ End Try > [!TIP] > If you do not have to catch specific exceptions, the `Using` statement behaves like a `Try…Finally` block, and guarantees disposal of the resources, regardless of how you exit the block. This is true even with an unhandled exception. For more information, see [Using Statement](../../../visual-basic/language-reference/statements/using-statement.md). -## Exception Argument +## Exception argument The `Catch` block `exception` argument is an instance of the class or a class that derives from the `Exception` class. The `Exception` class instance corresponds to the error that occurred in the `Try` block. The properties of the `Exception` object help to identify the cause and location of an exception. For example, the property lists the called methods that led to the exception, helping you find where the error occurred in the code. returns a message that describes the exception. returns a link to an associated Help file. returns the `Exception` object that caused the current exception, or it returns `Nothing` if there is no original `Exception`. -## Considerations When Using a Try…Catch Statement +## Considerations when using a Try…Catch statement Use a `Try…Catch` statement only to signal the occurrence of unusual or unanticipated program events. Reasons for this include the following: - Catching exceptions at runtime creates additional overhead, and is likely to be slower than pre-checking to avoid exceptions. @@ -112,7 +114,7 @@ End Try Ensure that code in `Catch` blocks can properly report exceptions to users, whether through thread-safe logging or appropriate messages. Otherwise, exceptions might remain unknown. -## Async Methods +## Async methods If you mark a method with the [Async](../../../visual-basic/language-reference/modifiers/async.md) modifier, you can use the [Await](../../../visual-basic/language-reference/operators/await-operator.md) operator in the method. A statement with the `Await` operator suspends execution of the method until the awaited task completes. The task represents ongoing work. When the task that's associated with the `Await` operator finishes, execution resumes in the same method. For more information, see [Control Flow in Async Programs](../../../visual-basic/programming-guide/concepts/async/control-flow-in-async-programs.md). A task returned by an Async method may end in a faulted state, indicating that it completed due to an unhandled exception. A task may also end in a canceled state, which results in an `OperationCanceledException` being thrown out of the await expression. To catch either type of exception, place the `Await` expression that's associated with the task in a `Try` block, and catch the exception in the `Catch` block. An example is provided later in this topic. @@ -130,36 +132,43 @@ End Try If the `For Each` body (outside of the iterator function) throws an exception, a `Catch` block in the iterator function is not executed, but a `Finally` block in the iterator function is executed. A `Catch` block inside an iterator function catches only exceptions that occur inside the iterator function. -## Partial-Trust Situations +## Partial-trust situations In partial-trust situations, such as an application hosted on a network share, `Try...Catch...Finally` does not catch security exceptions that occur before the method that contains the call is invoked. The following example, when you put it on a server share and run from there, produces the error "System.Security.SecurityException: Request Failed." For more information about security exceptions, see the class. [!code-vb[VbVbalrStatements#85](../../../visual-basic/language-reference/error-messages/codesnippet/VisualBasic/try-catch-finally-statement_2.vb)] In such a partial-trust situation, you have to put the `Process.Start` statement in a separate `Sub`. The initial call to the `Sub` will fail. This enables `Try...Catch` to catch it before the `Sub` that contains `Process.Start` is started and the security exception produced. -## Example - The following example illustrates the structure of the `Try...Catch...Finally` statement. +## Examples + +### The structure of Try...Catch...Finally + +The following example illustrates the structure of the `Try...Catch...Finally` statement. [!code-vb[VbVbalrStatements#86](../../../visual-basic/language-reference/error-messages/codesnippet/VisualBasic/try-catch-finally-statement_3.vb)] -## Example +### Exception in a method called from a Try block + In the following example, the `CreateException` method throws a `NullReferenceException`. The code that generates the exception is not in a `Try` block. Therefore, the `CreateException` method does not handle the exception. The `RunSample` method does handle the exception because the call to the `CreateException` method is in a `Try` block. The example includes `Catch` statements for several types of exceptions, ordered from the most specific to the most general. [!code-vb[VbVbalrStatements#91](../../../visual-basic/language-reference/error-messages/codesnippet/VisualBasic/try-catch-finally-statement_4.vb)] -## Example +### The Catch When statement + The following example shows how to use a `Catch When` statement to filter on a conditional expression. If the conditional expression evaluates to `True`, the code in the `Catch` block runs. [!code-vb[VbVbalrStatements#92](../../../visual-basic/language-reference/error-messages/codesnippet/VisualBasic/try-catch-finally-statement_5.vb)] -## Example +### Nested Try statements + The following example has a `Try…Catch` statement that is contained in a `Try` block. The inner `Catch` block throws an exception that has its `InnerException` property set to the original exception. The outer `Catch` block reports its own exception and the inner exception. [!code-vb[VbVbalrStatements#93](../../../visual-basic/language-reference/error-messages/codesnippet/VisualBasic/try-catch-finally-statement_6.vb)] -## Example +### Exception handling for async methods + The following example illustrates exception handling for async methods. To catch an exception that applies to an async task, the `Await` expression is in a `Try` block of the caller, and the exception is caught in the `Catch` block. Uncomment the `Throw New Exception` line in the example to demonstrate exception handling. The exception is caught in the `Catch` block, the task's `IsFaulted` property is set to `True`, and the task's `Exception.InnerException` property is set to the exception. @@ -168,18 +177,20 @@ End Try [!code-vb[csAsyncExceptions#1](../../../csharp/language-reference/keywords/codesnippet/VisualBasic/try-catch-finally-statement_7.vb)] -## Example +### Handling multiple exceptions in async methods + The following example illustrates exception handling where multiple tasks can result in multiple exceptions. The `Try` block has the `Await` expression for the task that returned. The task is complete when the three tasks to which is applied are complete. Each of the three tasks causes an exception. The `Catch` block iterates through the exceptions, which are found in the `Exception.InnerExceptions` property of the task that `Task.WhenAll` returned. [!code-vb[csAsyncExceptions#3](../../../csharp/language-reference/keywords/codesnippet/VisualBasic/try-catch-finally-statement_8.vb)] -## See Also - - - [Exit Statement](../../../visual-basic/language-reference/statements/exit-statement.md) - [On Error Statement](../../../visual-basic/language-reference/statements/on-error-statement.md) - [Best Practices for Using Code Snippets](/visualstudio/ide/best-practices-for-using-code-snippets) - [Exception Handling](../../../standard/parallel-programming/exception-handling-task-parallel-library.md) - [Throw Statement](../../../visual-basic/language-reference/statements/throw-statement.md) +## See also + +- +- +- [Exit Statement](../../../visual-basic/language-reference/statements/exit-statement.md) +- [On Error Statement](../../../visual-basic/language-reference/statements/on-error-statement.md) +- [Best Practices for Using Code Snippets](/visualstudio/ide/best-practices-for-using-code-snippets) +- [Exception Handling](../../../standard/parallel-programming/exception-handling-task-parallel-library.md) +- [Throw Statement](../../../visual-basic/language-reference/statements/throw-statement.md) diff --git a/index.md b/index.md index 35b581951a825..f0b66c98fa39a 100644 --- a/index.md +++ b/index.md @@ -21,7 +21,7 @@ ms.date: "12/04/2018"
-

Get started with C#

+

Learn C#

@@ -166,9 +166,9 @@ ms.date: "12/04/2018"