From 8733ade8a4803b710fa0d71b232e85f7fbba8f84 Mon Sep 17 00:00:00 2001 From: Genevieve Warren Date: Thu, 16 Apr 2020 18:34:07 -0700 Subject: [PATCH 1/5] replace redirects --- docs/csharp/language-reference/compiler-messages/cs0618.md | 2 +- .../compiler-options/target-compiler-option.md | 2 +- docs/csharp/misc/cs0243.md | 2 +- docs/csharp/misc/cs0612.md | 2 +- docs/csharp/misc/cs0629.md | 2 +- docs/csharp/programming-guide/concepts/attributes/index.md | 4 ++-- docs/csharp/programming-guide/concepts/collections.md | 2 +- docs/csharp/toc.yml | 2 +- docs/csharp/versioning.md | 2 +- docs/csharp/whats-new/version-update-considerations.md | 2 +- .../programming/drives-directories-files/toc.yml | 2 +- .../language-reference/statements/declare-statement.md | 2 +- ...ied-registry-path-does-not-start-with-a-valid-hive-name.md | 2 +- docs/visual-basic/programming-guide/concepts/collections.md | 2 +- docs/visual-basic/programming-guide/concepts/linq/toc.yml | 2 +- .../strings/how-to-create-strings-using-a-stringbuilder.md | 2 +- docs/visual-basic/toc.yml | 4 ++-- 17 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/csharp/language-reference/compiler-messages/cs0618.md b/docs/csharp/language-reference/compiler-messages/cs0618.md index f0ccd456a8ca6..6b292c6adabea 100644 --- a/docs/csharp/language-reference/compiler-messages/cs0618.md +++ b/docs/csharp/language-reference/compiler-messages/cs0618.md @@ -10,7 +10,7 @@ ms.assetid: b6edf0a9-b186-4ed8-9e16-978659b89205 # Compiler Warning (level 2) CS0618 'member' is obsolete: 'text' - A class member was marked with the `Obsolete` attribute, such that a warning will be issued when the class member is referenced. For more information, see [Common Attributes](../../programming-guide/concepts/attributes/common-attributes.md). + A class member was marked with the `Obsolete` attribute, such that a warning will be issued when the class member is referenced. For more information, see [Common Attributes](../attributes/global.md). The following sample generates CS0618: diff --git a/docs/csharp/language-reference/compiler-options/target-compiler-option.md b/docs/csharp/language-reference/compiler-options/target-compiler-option.md index 3ea04bfecdebc..68c8b22353559 100644 --- a/docs/csharp/language-reference/compiler-options/target-compiler-option.md +++ b/docs/csharp/language-reference/compiler-options/target-compiler-option.md @@ -31,7 +31,7 @@ The **-target** compiler option can be specified in one of four forms: [-target:winmdobj](./target-winmdobj-compiler-option.md) To create an intermediate .winmdobj file. - Unless you specify **-target:module**, **-target** causes a .NET Framework assembly manifest to be placed in an output file. For more information, see [Assemblies in .NET](../../../standard/assembly/index.md) and [Common Attributes](../../programming-guide/concepts/attributes/common-attributes.md). + Unless you specify **-target:module**, **-target** causes a .NET Framework assembly manifest to be placed in an output file. For more information, see [Assemblies in .NET](../../../standard/assembly/index.md) and [Common Attributes](../attributes/global.md). The assembly manifest is placed in the first .exe output file in the compilation or in the first DLL, if there is no .exe output file. For example, in the following command line, the manifest will be placed in `1.exe`: diff --git a/docs/csharp/misc/cs0243.md b/docs/csharp/misc/cs0243.md index 0a13ccc50af34..d260af5f3d022 100644 --- a/docs/csharp/misc/cs0243.md +++ b/docs/csharp/misc/cs0243.md @@ -11,7 +11,7 @@ ms.assetid: 2506e4cb-dc26-46b4-a58c-ab6bf1601144 The Conditional attribute is not valid on 'method' because it is an override method - The [Conditional](../programming-guide/concepts/attributes/common-attributes.md#Conditional) attribute is not allowed on a method that is marked with the [override](../language-reference/keywords/override.md) keyword. For more information, see [Knowing When to Use Override and New Keywords](../programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md). + The [Conditional](../language-reference/attributes/global.md#Conditional) attribute is not allowed on a method that is marked with the [override](../language-reference/keywords/override.md) keyword. For more information, see [Knowing When to Use Override and New Keywords](../programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md). The compiler never binds to override methods; it only binds to the base method and the common language runtime calls the override, as appropriate. diff --git a/docs/csharp/misc/cs0612.md b/docs/csharp/misc/cs0612.md index 618fa6906d080..b1242f38450e2 100644 --- a/docs/csharp/misc/cs0612.md +++ b/docs/csharp/misc/cs0612.md @@ -10,7 +10,7 @@ ms.assetid: 7695f3b7-ffef-43f7-83db-fc1a9e361f1a # Compiler Warning (level 1) CS0612 'member' is obsolete - The class designer marked a member with the [Obsolete](../programming-guide/concepts/attributes/common-attributes.md#Obsolete) attribute. This means that the member might not be supported in a future version of the class. + The class designer marked a member with the [Obsolete](../language-reference/attributes/global.md#Obsolete) attribute. This means that the member might not be supported in a future version of the class. The following sample shows how accessing an obsolete member generates CS0612: diff --git a/docs/csharp/misc/cs0629.md b/docs/csharp/misc/cs0629.md index 087f26433911d..9fa9661e095c5 100644 --- a/docs/csharp/misc/cs0629.md +++ b/docs/csharp/misc/cs0629.md @@ -10,7 +10,7 @@ ms.assetid: 20f22ef0-3c6f-4108-ab09-3f0752375a10 # Compiler Error CS0629 Conditional member 'member' cannot implement interface member 'base class member' in type 'Type Name' - The [Conditional](../programming-guide/concepts/attributes/common-attributes.md#Conditional) attribute cannot be used on the implementation of an interface. + The [Conditional](../language-reference/attributes/global.md#Conditional) attribute cannot be used on the implementation of an interface. The following sample generates CS0629: diff --git a/docs/csharp/programming-guide/concepts/attributes/index.md b/docs/csharp/programming-guide/concepts/attributes/index.md index 0146504a9e7aa..b684302948efd 100644 --- a/docs/csharp/programming-guide/concepts/attributes/index.md +++ b/docs/csharp/programming-guide/concepts/attributes/index.md @@ -75,7 +75,7 @@ The list of possible `target` values is shown in the following table. You would specify the `field` target value to apply an attribute to the backing field created for an [auto-implemented property](../../../properties.md). -The following example shows how to apply attributes to assemblies and modules. For more information, see [Common Attributes (C#)](common-attributes.md). +The following example shows how to apply attributes to assemblies and modules. For more information, see [Common Attributes (C#)](../../../language-reference/attributes/global.md). ```csharp using System; @@ -114,7 +114,7 @@ For more information, see: - [Creating Custom Attributes (C#)](creating-custom-attributes.md) - [Accessing Attributes by Using Reflection (C#)](accessing-attributes-by-using-reflection.md) - [How to create a C/C++ union by using attributes (C#)](how-to-create-a-c-cpp-union-by-using-attributes.md) -- [Common Attributes (C#)](common-attributes.md) +- [Common Attributes (C#)](../../../language-reference/attributes/global.md) - [Caller Information (C#)](../../../language-reference/attributes/caller-information.md) ## See also diff --git a/docs/csharp/programming-guide/concepts/collections.md b/docs/csharp/programming-guide/concepts/collections.md index 5b3ebb024284e..c3496e7afb6e2 100644 --- a/docs/csharp/programming-guide/concepts/collections.md +++ b/docs/csharp/programming-guide/concepts/collections.md @@ -596,7 +596,7 @@ private static IEnumerable EvenSequence( - [Programming Concepts (C#)](./index.md) - [Option Strict Statement](../../../visual-basic/language-reference/statements/option-strict-statement.md) - [LINQ to Objects (C#)](./linq/linq-to-objects.md) -- [Parallel LINQ (PLINQ)](../../../standard/parallel-programming/parallel-linq-plinq.md) +- [Parallel LINQ (PLINQ)](../../../standard/parallel-programming/introduction-to-plinq.md) - [Collections and Data Structures](../../../standard/collections/index.md) - [Selecting a Collection Class](../../../standard/collections/selecting-a-collection-class.md) - [Comparisons and Sorts Within Collections](../../../standard/collections/comparisons-and-sorts-within-collections.md) diff --git a/docs/csharp/toc.yml b/docs/csharp/toc.yml index 7a30ee502b8ad..793b6c594ccde 100644 --- a/docs/csharp/toc.yml +++ b/docs/csharp/toc.yml @@ -508,7 +508,7 @@ - name: "How to compute column values in a CSV text file (LINQ)" href: programming-guide/concepts/linq/how-to-compute-column-values-in-a-csv-text-file-linq.md - name: LINQ and Reflection - href: programming-guide/concepts/linq/linq-and-reflection.md + href: programming-guide/concepts/linq/how-to-query-an-assembly-s-metadata-with-reflection-linq.md - name: "How to query an assembly's metadata with Reflection (LINQ)" href: programming-guide/concepts/linq/how-to-query-an-assembly-s-metadata-with-reflection-linq.md - name: LINQ and File Directories diff --git a/docs/csharp/versioning.md b/docs/csharp/versioning.md index 627a39559ee90..e914c0c3b107d 100644 --- a/docs/csharp/versioning.md +++ b/docs/csharp/versioning.md @@ -39,7 +39,7 @@ Here are some things to consider when trying to maintain backwards compatibility will have to be updated. This is a huge breaking change and is strongly discouraged. - Method signatures: When updating a method behavior requires you to change its signature as well, you should instead create an overload so that code calling into that method will still work. You can always manipulate the old method signature to call into the new method signature so that implementation remains consistent. -- [Obsolete attribute](programming-guide/concepts/attributes/common-attributes.md#Obsolete): You can use this attribute in your code to specify classes or class members that are deprecated and likely to be removed in future versions. This ensures developers utilizing your library are better prepared for breaking changes. +- [Obsolete attribute](language-reference/attributes/global.md#Obsolete): You can use this attribute in your code to specify classes or class members that are deprecated and likely to be removed in future versions. This ensures developers utilizing your library are better prepared for breaking changes. - Optional Method Arguments: When you make previously optional method arguments compulsory or change their default value then all code that does not supply those arguments will need to be updated. > [!NOTE] diff --git a/docs/csharp/whats-new/version-update-considerations.md b/docs/csharp/whats-new/version-update-considerations.md index 2d884b60ce007..914afe0957218 100644 --- a/docs/csharp/whats-new/version-update-considerations.md +++ b/docs/csharp/whats-new/version-update-considerations.md @@ -57,4 +57,4 @@ New code: public double CalculateSquare(in double value) => value * value; ``` -The [What's new](index.md) articles note if introducing a feature that affects public declarations is source compatible or binary compatible. +The [What's new](csharp-8.md) articles note if introducing a feature that affects public declarations is source compatible or binary compatible. diff --git a/docs/visual-basic/developing-apps/programming/drives-directories-files/toc.yml b/docs/visual-basic/developing-apps/programming/drives-directories-files/toc.yml index 4457413b8b778..13dc93a652208 100644 --- a/docs/visual-basic/developing-apps/programming/drives-directories-files/toc.yml +++ b/docs/visual-basic/developing-apps/programming/drives-directories-files/toc.yml @@ -1,5 +1,5 @@ - name: Processing Drives, Directories, and Files - href: processing.md + href: index.md items: - name: File Access with Visual Basic href: file-access.md diff --git a/docs/visual-basic/language-reference/statements/declare-statement.md b/docs/visual-basic/language-reference/statements/declare-statement.md index 54763654c06c7..83ae76a33da1e 100644 --- a/docs/visual-basic/language-reference/statements/declare-statement.md +++ b/docs/visual-basic/language-reference/statements/declare-statement.md @@ -123,7 +123,7 @@ External references default to [Public](../../../visual-basic/language-reference - **Mechanism.** Visual Basic uses the .NET Framework *platform invoke* (PInvoke) mechanism to resolve and access external procedures. The `Declare` statement and the class both use this mechanism automatically, and you do not need any knowledge of PInvoke. For more information, see [Walkthrough: Calling Windows APIs](../../../visual-basic/programming-guide/com-interop/walkthrough-calling-windows-apis.md). > [!IMPORTANT] -> If the external procedure runs outside the common language runtime (CLR), it is *unmanaged code*. When you call such a procedure, for example a Windows API function or a COM method, you might expose your application to security risks. For more information, see [Secure Coding Guidelines for Unmanaged Code](../../../framework/security/secure-coding-guidelines-for-unmanaged-code.md). +> If the external procedure runs outside the common language runtime (CLR), it is *unmanaged code*. When you call such a procedure, for example a Windows API function or a COM method, you might expose your application to security risks. For more information, see [Secure Coding Guidelines for Unmanaged Code](https://docs.microsoft.com/previous-versions/dotnet/framework/security/secure-coding-guidelines-for-unmanaged-code). ## Example diff --git a/docs/visual-basic/misc/specified-registry-path-does-not-start-with-a-valid-hive-name.md b/docs/visual-basic/misc/specified-registry-path-does-not-start-with-a-valid-hive-name.md index 7cc6693892356..8ae0f335721f9 100644 --- a/docs/visual-basic/misc/specified-registry-path-does-not-start-with-a-valid-hive-name.md +++ b/docs/visual-basic/misc/specified-registry-path-does-not-start-with-a-valid-hive-name.md @@ -26,6 +26,6 @@ The specified registry path does not begin with a valid hive name. Valid hive na ## See also -- [Manipulating Strings](../../standard/base-types/manipulating-strings.md) +- [Manipulating Strings](../../standard/base-types/best-practices-strings.md) - [Reading from and Writing to the Registry (Visual Basic)](../developing-apps/programming/computer-resources/reading-from-and-writing-to-the-registry.md) - [My.Computer.Registry](xref:Microsoft.VisualBasic.MyServices.RegistryProxy) diff --git a/docs/visual-basic/programming-guide/concepts/collections.md b/docs/visual-basic/programming-guide/concepts/collections.md index 04cbdf169143c..90c35b377949a 100644 --- a/docs/visual-basic/programming-guide/concepts/collections.md +++ b/docs/visual-basic/programming-guide/concepts/collections.md @@ -568,7 +568,7 @@ End Function - [Programming Concepts (Visual Basic)](../../../visual-basic/programming-guide/concepts/index.md) - [Option Strict Statement](../../../visual-basic/language-reference/statements/option-strict-statement.md) - [LINQ to Objects (Visual Basic)](../../../visual-basic/programming-guide/concepts/linq/linq-to-objects.md) -- [Parallel LINQ (PLINQ)](../../../standard/parallel-programming/parallel-linq-plinq.md) +- [Parallel LINQ (PLINQ)](../../../standard/parallel-programming/introduction-to-plinq.md) - [Collections and Data Structures](../../../standard/collections/index.md) - [Selecting a Collection Class](../../../standard/collections/selecting-a-collection-class.md) - [Comparisons and Sorts Within Collections](../../../standard/collections/comparisons-and-sorts-within-collections.md) diff --git a/docs/visual-basic/programming-guide/concepts/linq/toc.yml b/docs/visual-basic/programming-guide/concepts/linq/toc.yml index c526c6adb1348..f03a5971730c8 100644 --- a/docs/visual-basic/programming-guide/concepts/linq/toc.yml +++ b/docs/visual-basic/programming-guide/concepts/linq/toc.yml @@ -295,7 +295,7 @@ href: linq-to-xml-for-xpath-users.md items: - name: Comparison of XPath and LINQ to XML - href: comparison-of-xpath-and-linq-to-xml.md + href: ../../../../csharp/programming-guide/concepts/linq/comparison-of-xpath-and-linq-to-xml.md - name: "How to: Find a Child Element (XPath-LINQ to XML)" href: how-to-find-a-child-element-xpath-linq-to-xml.md - name: "How to: Find a List of Child Elements (XPath-LINQ to XML)" diff --git a/docs/visual-basic/programming-guide/language-features/strings/how-to-create-strings-using-a-stringbuilder.md b/docs/visual-basic/programming-guide/language-features/strings/how-to-create-strings-using-a-stringbuilder.md index 83804153c5bc4..5285799ba994b 100644 --- a/docs/visual-basic/programming-guide/language-features/strings/how-to-create-strings-using-a-stringbuilder.md +++ b/docs/visual-basic/programming-guide/language-features/strings/how-to-create-strings-using-a-stringbuilder.md @@ -22,4 +22,4 @@ The following example creates an instance of the Date: Thu, 16 Apr 2020 20:01:28 -0700 Subject: [PATCH 2/5] fix bad bookmarks --- docs/csharp/misc/cs0243.md | 8 ++++---- docs/csharp/misc/cs0612.md | 5 +++-- docs/csharp/misc/cs0629.md | 7 ++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/csharp/misc/cs0243.md b/docs/csharp/misc/cs0243.md index d260af5f3d022..c24a65eb62549 100644 --- a/docs/csharp/misc/cs0243.md +++ b/docs/csharp/misc/cs0243.md @@ -7,15 +7,15 @@ helpviewer_keywords: - "CS0243" ms.assetid: 2506e4cb-dc26-46b4-a58c-ab6bf1601144 --- -# Compiler Error CS0243 +# Compiler error CS0243 The Conditional attribute is not valid on 'method' because it is an override method - The [Conditional](../language-reference/attributes/global.md#Conditional) attribute is not allowed on a method that is marked with the [override](../language-reference/keywords/override.md) keyword. For more information, see [Knowing When to Use Override and New Keywords](../programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md). +The attribute is not allowed on a method that is marked with the [override](../language-reference/keywords/override.md) keyword. For more information, see [Knowing When to Use Override and New Keywords](../programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md). - The compiler never binds to override methods; it only binds to the base method and the common language runtime calls the override, as appropriate. +The compiler never binds to override methods. It only binds to the base method, and the common language runtime calls the override, as appropriate. - The following sample generates CS0243: +The following code generates CS0243: ```csharp // CS0243.cs diff --git a/docs/csharp/misc/cs0612.md b/docs/csharp/misc/cs0612.md index b1242f38450e2..fad171f9bb6e9 100644 --- a/docs/csharp/misc/cs0612.md +++ b/docs/csharp/misc/cs0612.md @@ -7,10 +7,11 @@ helpviewer_keywords: - "CS0612" ms.assetid: 7695f3b7-ffef-43f7-83db-fc1a9e361f1a --- -# Compiler Warning (level 1) CS0612 +# Compiler warning (level 1) CS0612 + 'member' is obsolete - The class designer marked a member with the [Obsolete](../language-reference/attributes/global.md#Obsolete) attribute. This means that the member might not be supported in a future version of the class. + The class designer marked a member with the attribute. This means that the member might not be supported in a future version of the class. The following sample shows how accessing an obsolete member generates CS0612: diff --git a/docs/csharp/misc/cs0629.md b/docs/csharp/misc/cs0629.md index 9fa9661e095c5..2ffa89155ad45 100644 --- a/docs/csharp/misc/cs0629.md +++ b/docs/csharp/misc/cs0629.md @@ -7,12 +7,13 @@ helpviewer_keywords: - "CS0629" ms.assetid: 20f22ef0-3c6f-4108-ab09-3f0752375a10 --- -# Compiler Error CS0629 +# Compiler error CS0629 + Conditional member 'member' cannot implement interface member 'base class member' in type 'Type Name' - The [Conditional](../language-reference/attributes/global.md#Conditional) attribute cannot be used on the implementation of an interface. +The attribute cannot be used on the implementation of an interface. - The following sample generates CS0629: +The following sample generates CS0629: ```csharp // CS0629.cs From bcbe946550d7f8d5f372c3a6535ce576744f4422 Mon Sep 17 00:00:00 2001 From: Genevieve Warren Date: Fri, 17 Apr 2020 08:38:44 -0700 Subject: [PATCH 3/5] fix bad bookmark --- docs/csharp/versioning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/versioning.md b/docs/csharp/versioning.md index e914c0c3b107d..9b11e5e1dc57f 100644 --- a/docs/csharp/versioning.md +++ b/docs/csharp/versioning.md @@ -39,7 +39,7 @@ Here are some things to consider when trying to maintain backwards compatibility will have to be updated. This is a huge breaking change and is strongly discouraged. - Method signatures: When updating a method behavior requires you to change its signature as well, you should instead create an overload so that code calling into that method will still work. You can always manipulate the old method signature to call into the new method signature so that implementation remains consistent. -- [Obsolete attribute](language-reference/attributes/global.md#Obsolete): You can use this attribute in your code to specify classes or class members that are deprecated and likely to be removed in future versions. This ensures developers utilizing your library are better prepared for breaking changes. +- : You can use this attribute in your code to specify classes or class members that are deprecated and likely to be removed in future versions. This ensures developers utilizing your library are better prepared for breaking changes. - Optional Method Arguments: When you make previously optional method arguments compulsory or change their default value then all code that does not supply those arguments will need to be updated. > [!NOTE] From bf4af8d8a9b76362a5b35d4ef195d4effa54d25e Mon Sep 17 00:00:00 2001 From: Genevieve Warren Date: Fri, 17 Apr 2020 10:08:22 -0700 Subject: [PATCH 4/5] Update docs/csharp/whats-new/version-update-considerations.md Co-Authored-By: Bill Wagner --- docs/csharp/whats-new/version-update-considerations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/whats-new/version-update-considerations.md b/docs/csharp/whats-new/version-update-considerations.md index 914afe0957218..2d884b60ce007 100644 --- a/docs/csharp/whats-new/version-update-considerations.md +++ b/docs/csharp/whats-new/version-update-considerations.md @@ -57,4 +57,4 @@ New code: public double CalculateSquare(in double value) => value * value; ``` -The [What's new](csharp-8.md) articles note if introducing a feature that affects public declarations is source compatible or binary compatible. +The [What's new](index.md) articles note if introducing a feature that affects public declarations is source compatible or binary compatible. From f106b8d61604f67f1b938754f205ecf2c8752267 Mon Sep 17 00:00:00 2001 From: Genevieve Warren Date: Fri, 17 Apr 2020 10:57:32 -0700 Subject: [PATCH 5/5] revert xref attribute links --- docs/csharp/misc/cs0612.md | 2 +- docs/csharp/misc/cs0629.md | 2 +- docs/csharp/versioning.md | 2 +- docs/csharp/whats-new/version-update-considerations.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/csharp/misc/cs0612.md b/docs/csharp/misc/cs0612.md index fad171f9bb6e9..52d05d95b6302 100644 --- a/docs/csharp/misc/cs0612.md +++ b/docs/csharp/misc/cs0612.md @@ -11,7 +11,7 @@ ms.assetid: 7695f3b7-ffef-43f7-83db-fc1a9e361f1a 'member' is obsolete - The class designer marked a member with the attribute. This means that the member might not be supported in a future version of the class. + The class designer marked a member with the [Obsolete attribute](../language-reference/attributes/general.md#obsolete-attribute). This means that the member might not be supported in a future version of the class. The following sample shows how accessing an obsolete member generates CS0612: diff --git a/docs/csharp/misc/cs0629.md b/docs/csharp/misc/cs0629.md index 2ffa89155ad45..c708f1f7ea7b2 100644 --- a/docs/csharp/misc/cs0629.md +++ b/docs/csharp/misc/cs0629.md @@ -11,7 +11,7 @@ ms.assetid: 20f22ef0-3c6f-4108-ab09-3f0752375a10 Conditional member 'member' cannot implement interface member 'base class member' in type 'Type Name' -The attribute cannot be used on the implementation of an interface. +The [Conditional attribute](../language-reference/attributes/general.md#conditional-attribute) cannot be used on the implementation of an interface. The following sample generates CS0629: diff --git a/docs/csharp/versioning.md b/docs/csharp/versioning.md index 9b11e5e1dc57f..0738462066909 100644 --- a/docs/csharp/versioning.md +++ b/docs/csharp/versioning.md @@ -39,7 +39,7 @@ Here are some things to consider when trying to maintain backwards compatibility will have to be updated. This is a huge breaking change and is strongly discouraged. - Method signatures: When updating a method behavior requires you to change its signature as well, you should instead create an overload so that code calling into that method will still work. You can always manipulate the old method signature to call into the new method signature so that implementation remains consistent. -- : You can use this attribute in your code to specify classes or class members that are deprecated and likely to be removed in future versions. This ensures developers utilizing your library are better prepared for breaking changes. +- [Obsolete attribute](language-reference/attributes/general.md#obsolete-attribute): You can use this attribute in your code to specify classes or class members that are deprecated and likely to be removed in future versions. This ensures developers utilizing your library are better prepared for breaking changes. - Optional Method Arguments: When you make previously optional method arguments compulsory or change their default value then all code that does not supply those arguments will need to be updated. > [!NOTE] diff --git a/docs/csharp/whats-new/version-update-considerations.md b/docs/csharp/whats-new/version-update-considerations.md index 914afe0957218..951f82eb89f86 100644 --- a/docs/csharp/whats-new/version-update-considerations.md +++ b/docs/csharp/whats-new/version-update-considerations.md @@ -57,4 +57,4 @@ New code: public double CalculateSquare(in double value) => value * value; ``` -The [What's new](csharp-8.md) articles note if introducing a feature that affects public declarations is source compatible or binary compatible. +The [What's new](.md) articles note if introducing a feature that affects public declarations is source compatible or binary compatible.