From 45ff9e96ed458ec5689b37bbe4a2bccbb8292726 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 29 Sep 2026 03:30:53 +0000 Subject: [PATCH 1/6] Initial plan From b134a36e401d62bcb5858904fbba5ab93dd67433 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 29 Sep 2026 03:38:48 +0000 Subject: [PATCH 2/6] Document .NET 11 parsing and numeric behavior Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com> --- xml/System.Reflection/Assembly.xml | 2 ++ xml/System/DateOnly.xml | 8 +++++++- xml/System/Decimal.xml | 6 ++++-- xml/System/Math.xml | 14 +++++++------- xml/System/MathF.xml | 8 ++++---- xml/System/Nullable.xml | 1 + xml/System/TimeOnly.xml | 8 +++++++- xml/System/Type.xml | 7 ++++--- 8 files changed, 36 insertions(+), 18 deletions(-) diff --git a/xml/System.Reflection/Assembly.xml b/xml/System.Reflection/Assembly.xml index f3d45399bfa..5ed41a73b21 100644 --- a/xml/System.Reflection/Assembly.xml +++ b/xml/System.Reflection/Assembly.xml @@ -1044,6 +1044,7 @@ Many members of the class provide information This effect also occurs when `M1` executes as a tail call from `M2`, or when `M2` executes as a tail call from `M3`. You can prevent the JIT compiler from inlining the method that calls , by applying the attribute with the flag, but there is no similar mechanism for preventing tail calls. +Starting in .NET 11, this method supports Native AOT and uses stack trace data to identify the caller. If the `StackTraceSupport` feature switch is set to `false`, the method throws . ## Examples @@ -1054,6 +1055,7 @@ Many members of the class provide information ]]> + Stack trace support is disabled. diff --git a/xml/System/DateOnly.xml b/xml/System/DateOnly.xml index bbe338074ae..7813f5d7ede 100644 --- a/xml/System/DateOnly.xml +++ b/xml/System/DateOnly.xml @@ -54,7 +54,13 @@ Represents dates with values ranging from January 1, 0001 Anno Domini (Common Era) through December 31, 9999 A.D. (C.E.) in the Gregorian calendar. - To be added. + + when a supplied value or format specifier is invalid. + + ]]> + diff --git a/xml/System/Decimal.xml b/xml/System/Decimal.xml index 13c10bb792b..d3a7f6e2a01 100644 --- a/xml/System/Decimal.xml +++ b/xml/System/Decimal.xml @@ -247,6 +247,8 @@ The type also provides methods that convert or to throw an exception if the result of the conversion cannot be represented as a . +In .NET 11 and later, conversions between and binary floating-point types round the exact source value once to the nearest representable destination value. + ## Perform operations on Decimal values The type supports standard mathematical operations such as addition, subtraction, division, multiplication, and unary negation. You can also work directly with the binary representation of a value by calling the method. @@ -321,7 +323,7 @@ The following code example demonstrates the use of . . ## Examples The following code example creates several `Decimal` numbers using the constructor overload that initializes a `Decimal` structure with a value. @@ -575,7 +577,7 @@ The following code example demonstrates the use of . . diff --git a/xml/System/Math.xml b/xml/System/Math.xml index c60f7599113..7ed3244275d 100644 --- a/xml/System/Math.xml +++ b/xml/System/Math.xml @@ -5714,7 +5714,7 @@ By default, the method uses the round to nearest even ### Rounding and precision -In order to determine whether a rounding operation involves a midpoint value, the method multiplies the original value to be rounded by 10n, where *n* is the desired number of fractional digits in the return value, and then determines whether the remaining fractional portion of the value is greater than or equal to .5. This is a slight variation on a test for equality, and as discussed in the "Testing for Equality" section of the reference topic, tests for equality with floating-point values are problematic because of the floating-point format's issues with binary representation and precision. This means that any fractional portion of a number that is slightly less than .5 (because of a loss of precision) will not be rounded upward. +Starting in .NET 11, the floating-point overloads that accept a `digits` argument round the exact value of the input and return the nearest representable result. Because a decimal fraction often can't be represented exactly as a , the stored value can be below or above the expected decimal midpoint. The overloads use decimal arithmetic. The following example illustrates the problem. It repeatedly adds .1 to 11.0 and rounds the result to the nearest integer. 11.5 should round to 12 using either of the midpoint-rounding conventions (`ToEven` or `AwayFromZero`). However, as the output from the example shows, it does not. The example uses the "R" [standard numeric format string](/dotnet/standard/base-types/standard-numeric-format-strings) to display the floating point value's full precision, and shows that the value to be rounded has lost precision during repeated additions, and its value is actually 11.499999999999998. Because .499999999999998 is less than .5, the midpoint-rounding conventions don't come into play and the value is rounded down. As the example also shows, this problem does not occur if you assign the constant value 11.5 to a variable. @@ -6127,7 +6127,7 @@ The following example displays values returned by the type is 15. +The `digits` argument can be any non-negative value. Values of 17 or greater leave the value unchanged. This method uses the default rounding convention of . See [Midpoint values and rounding conventions](#midpoint-values-and-rounding-conventions) for information about rounding numbers with midpoint values. @@ -6146,9 +6146,9 @@ The following example rounds double values with two fractional digits to doubles ]]> - is less than 0 or greater than 15. + is less than 0. - Because of the loss of precision that can result from representing decimal values as floating-point numbers or performing arithmetic operations on floating-point values, in some cases the method may not appear to round midpoint values to the nearest even value in the decimal position. This is illustrated in the following example, where 2.135 is rounded to 2.13 instead of 2.14. This occurs because internally the method multiplies by 10digits, and the multiplication operation in this case suffers from a loss of precision. + Because most decimal fractions can't be represented exactly as floating-point values, rounding uses the exact value stored in . For example, the stored value for 2.135 is slightly less than 2.135, so rounding it to two fractional digits produces 2.13. :::code language="csharp" source="~/snippets/csharp/System/Math/Round/round3.cs" id="Snippet2"::: :::code language="fsharp" source="~/snippets/fsharp/System/Math/Round/round3.fs" id="Snippet2"::: @@ -6379,7 +6379,7 @@ The following example demonstrates how to use the meth ## Remarks -The value of the `digits` argument can range from 0 to 15. The maximum number of integral and fractional digits supported by the type is 15. +The `digits` argument can be any non-negative value. Values of 17 or greater leave the value unchanged. See [Midpoint values and rounding conventions](#midpoint-values-and-rounding-conventions) for information about rounding numbers with midpoint values. @@ -6398,11 +6398,11 @@ The following example demonstrates how to use the - is less than 0 or greater than 15. + is less than 0. is not a valid value of . - Because of the loss of precision that can result from representing decimal values as floating-point numbers or performing arithmetic operations on floating-point values, in some cases the method may not appear to round midpoint values as specified by the parameter. This is illustrated in the following example, where 2.135 is rounded to 2.13 instead of 2.14. This occurs because internally the method multiplies by 10digits, and the multiplication operation in this case suffers from a loss of precision. + Because most decimal fractions can't be represented exactly as floating-point values, rounding uses the exact value stored in . For example, the stored value for 2.135 is slightly less than 2.135, so rounding it to two fractional digits produces 2.13. :::code language="csharp" source="~/snippets/csharp/System/Math/Round/round4.cs" id="Snippet3"::: :::code language="fsharp" source="~/snippets/fsharp/System/Math/Round/round4.fs" id="Snippet3"::: diff --git a/xml/System/MathF.xml b/xml/System/MathF.xml index 440c3a6f5a2..7e6639d0a86 100644 --- a/xml/System/MathF.xml +++ b/xml/System/MathF.xml @@ -2054,7 +2054,7 @@ If the value of the `x` argument is type. +The `digits` argument can be any non-negative value. Values of 9 or greater leave the value unchanged. This method uses the default rounding convention of . @@ -2065,7 +2065,7 @@ If the value of the `x` argument is - is less than 0 or greater than 6. + is less than 0. @@ -2192,7 +2192,7 @@ If the value of the `x` argument is type is 6. +The `digits` argument can be any non-negative value. Values of 9 or greater leave the value unchanged. [!INCLUDE[midpoint-rounding](~/includes/floating-point-equality.md)] @@ -2201,7 +2201,7 @@ If the value of the `x` argument is - is less than 0 or greater than 6. + is less than 0. is not a valid value of . diff --git a/xml/System/Nullable.xml b/xml/System/Nullable.xml index ae4dc07f0de..6ceda74286c 100644 --- a/xml/System/Nullable.xml +++ b/xml/System/Nullable.xml @@ -265,6 +265,7 @@ If the `HasValue` property of a nullable type is `false`, the result of the boxi is . + The is a custom subclass that doesn't override . diff --git a/xml/System/TimeOnly.xml b/xml/System/TimeOnly.xml index 8cd63ff50a5..ad2adb954bc 100644 --- a/xml/System/TimeOnly.xml +++ b/xml/System/TimeOnly.xml @@ -54,7 +54,13 @@ Represents a time of day, as would be read from a clock, within the range 00:00:00 to 23:59:59.9999999. - To be added. + + when a supplied value or format specifier is invalid. + + ]]> + diff --git a/xml/System/Type.xml b/xml/System/Type.xml index 02efa37e263..42b99f64a32 100644 --- a/xml/System/Type.xml +++ b/xml/System/Type.xml @@ -6936,9 +6936,10 @@ If the current represents a type parameter in the definition - To be added. - To be added. - To be added. + Gets the underlying type argument of the current nullable type. + The underlying type argument if the current type is a constructed type; otherwise, . + Derived classes must override this method. The base implementation throws . + The current type is a derived type that doesn't override this method. From e548535818e8e83c9d92fdcef3995687b57dfa2d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 29 Sep 2026 03:42:20 +0000 Subject: [PATCH 3/6] Document .NET 11 API behavior changes Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com> --- xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml | 6 +++--- xml/System.IO.Compression/ZipArchive.xml | 4 ++++ xml/System.IO.Packaging/PackagePart.xml | 12 +++++++++++- xml/System.IO/FileStream.xml | 10 +++++----- .../SslServerAuthenticationOptions.xml | 2 ++ xml/System.Net.Sockets/SendPacketsElement.xml | 4 ++-- xml/System.Numerics/BigInteger.xml | 2 ++ xml/System.Numerics/Complex.xml | 2 ++ xml/System.Reflection/Assembly.xml | 2 +- .../X509Chain.xml | 2 ++ xml/System.Security.Cryptography/CompositeMLDsa.xml | 2 +- xml/System.Security.Cryptography/DSA.xml | 2 ++ xml/System.Security.Cryptography/HKDF.xml | 6 ++++++ xml/System/DateOnly.xml | 2 +- xml/System/TimeOnly.xml | 2 +- 15 files changed, 45 insertions(+), 15 deletions(-) diff --git a/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml b/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml index 7d9a80c8c36..ebb6d616437 100644 --- a/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml +++ b/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml @@ -237,10 +237,10 @@ System.Boolean - Gets a value that determines if the handle is asynchronous or not. + Gets a value that indicates whether the handle is configured for asynchronous I/O. - if the handle is asynchronous; otherwise. - To be added. + if the handle is configured for overlapped I/O on Windows or, in .NET 11 and later, has the O_NONBLOCK flag set on Unix; otherwise, . + On Unix, starting in .NET 11, this property reflects whether the file descriptor has the O_NONBLOCK flag set. Regular files return , even if opened with .. diff --git a/xml/System.IO.Compression/ZipArchive.xml b/xml/System.IO.Compression/ZipArchive.xml index 2ef4025055a..0e4284cdba3 100644 --- a/xml/System.IO.Compression/ZipArchive.xml +++ b/xml/System.IO.Compression/ZipArchive.xml @@ -429,6 +429,7 @@ If the comment byte length is larger than , it will + In .NET 11 and later, this method reads the archive's central directory and loads its entries asynchronously before it completes. Errors caused by malformed entries are reported by this method; accessing the property afterward doesn't read from the stream. The stream is already closed. @@ -445,6 +446,9 @@ If the comment byte length is larger than , it will is Update and an entry is missing from the archive or is corrupt and cannot be read. -or- + + In .NET 11 and later, is Read and an archive entry is malformed. + -or- is Update and an entry is too large to fit into memory. diff --git a/xml/System.IO.Packaging/PackagePart.xml b/xml/System.IO.Packaging/PackagePart.xml index 86f78091b65..67883c2803d 100644 --- a/xml/System.IO.Packaging/PackagePart.xml +++ b/xml/System.IO.Packaging/PackagePart.xml @@ -977,6 +977,8 @@ A part-level relationship defines an association between this part and a target ## Remarks This method opens the content stream with of and permissions that are the same as the parent . + In .NET 11 and later, when a compressed part in a read/write package is opened for reading and hasn't been modified in the current session, the returned stream is non-seekable. + The overload method allows you to set a specific . ]]> @@ -1036,6 +1038,8 @@ A part-level relationship defines an association between this part and a target ## Remarks The permissions of the returned content stream are the same as the permissions of the parent . + In .NET 11 and later, when a compressed part in a read/write package is opened for reading and hasn't been modified in the current session, the returned stream is non-seekable. + ]]> The part has been deleted. @@ -1094,7 +1098,13 @@ A part-level relationship defines an association between this part and a target The access permissions to use in opening the content stream. Returns the part content stream opened with a specified and . The content stream for the part. - To be added. + + + The part has been deleted. -or- diff --git a/xml/System.IO/FileStream.xml b/xml/System.IO/FileStream.xml index 0296e9df1d9..46ea6776663 100644 --- a/xml/System.IO/FileStream.xml +++ b/xml/System.IO/FileStream.xml @@ -65,7 +65,7 @@ Use the class to read from, write to, open, and clos > [!IMPORTANT] > This type implements the interface. When you've finished using the type, you should dispose of it either directly (by calling its `Dispose` method) or indirectly (with a language construct such as `using` in C#). For more information, see [Use an object that implements IDisposable](xref:System.IDisposable#use-an-object-that-implements-idisposable). -The property detects whether the file handle was opened asynchronously. You specify this value when you create an instance of the class using a constructor that has an `isAsync`, `useAsync`, or `options` parameter. When the property is `true`, the stream utilizes overlapped I/O to perform file operations asynchronously. However, the property does not have to be `true` to call the , , or method. When the property is `false` and you call the asynchronous read and write operations, the UI thread is still not blocked, but the actual I/O operation is performed synchronously. +The property indicates whether the underlying handle is configured for asynchronous I/O. On Windows, this means the handle was opened for overlapped I/O. On Unix, starting in .NET 11, the property is `true` only when the file descriptor has the `O_NONBLOCK` flag set; regular files return `false` even when opened with . You can call asynchronous methods such as and when the property is `false`, but the I/O is performed synchronously. The method supports random access to files. allows the read/write position to be moved to any position within the file. This is done with byte offset reference point parameters. The byte offset is relative to the seek reference point, which can be the beginning, the current position, or the end of the underlying file, as represented by the three members of the enumeration. @@ -2288,16 +2288,16 @@ This method flushes the .NET stream buffers to the file, but does not flush inte System.Boolean - Gets a value that indicates whether the was opened asynchronously or synchronously. + Gets a value that indicates whether the underlying handle is configured for asynchronous I/O. - if the was opened asynchronously; otherwise, . + if the handle was opened for overlapped I/O on Windows or, in .NET 11 and later, has the O_NONBLOCK flag set on Unix; otherwise, . property correctly. In Win32, `IsAsync` being true means the handle was opened for overlapped I/O, and thus requires different parameters to `ReadFile` and `WriteFile`. + The `IsAsync` property indicates whether the `FileStream` handle is configured for asynchronous I/O, enabling your code to use the property correctly. In Win32, `IsAsync` being true means the handle was opened for overlapped I/O, and thus requires different parameters to `ReadFile` and `WriteFile`. On Unix, starting in .NET 11, it reflects whether the file descriptor has the `O_NONBLOCK` flag set. - You specify this value when you create an instance of the class using a constructor that has an `isAsync`, `useAsync`, or `options` parameter. When the property is `true`, the stream utilizes overlapped I/O to perform file operations asynchronously. However, the property does not have to be `true` to call the , , or method. When the property is `false` and you call the asynchronous read and write operations, the UI thread is still not blocked, but the actual I/O operation is performed synchronously. + You specify this value when you create an instance of the class using a constructor that has an `isAsync`, `useAsync`, or `options` parameter. The property doesn't have to be `true` to call the , , or method. When the property is `false` and you call an asynchronous read or write method, the UI thread isn't blocked, but the I/O is performed synchronously. diff --git a/xml/System.Net.Security/SslServerAuthenticationOptions.xml b/xml/System.Net.Security/SslServerAuthenticationOptions.xml index 83f19101edd..c296996eec5 100644 --- a/xml/System.Net.Security/SslServerAuthenticationOptions.xml +++ b/xml/System.Net.Security/SslServerAuthenticationOptions.xml @@ -259,6 +259,8 @@ When this property isn't `null`, certain properties on `SslServerAuthenticationO - is superseded by . - Any associated with is superseded by and . However, the trust list from `SslCertificateTrust` is still sent in the handshake when configured. + +When validating client certificates on the server, .NET 11 and later disable AIA certificate downloads by default if this property is `null`. If you supply a chain policy, its value is used. ]]> diff --git a/xml/System.Net.Sockets/SendPacketsElement.xml b/xml/System.Net.Sockets/SendPacketsElement.xml index 7c319f8ea15..33f698b3eb5 100644 --- a/xml/System.Net.Sockets/SendPacketsElement.xml +++ b/xml/System.Net.Sockets/SendPacketsElement.xml @@ -358,7 +358,7 @@ ]]> - The parameter must have been opened for asynchronous reading and writing. + On Windows, the parameter must have been opened for asynchronous reading and writing. In .NET 10 and earlier, this requirement also applied on non-Windows platforms. The parameter cannot be . The and parameters must be greater than or equal to zero. @@ -553,7 +553,7 @@ ]]> - The parameter must have been opened for asynchronous reading and writing. + On Windows, the parameter must have been opened for asynchronous reading and writing. In .NET 10 and earlier, this requirement also applied on non-Windows platforms. The parameter cannot be . The and parameters must be greater than or equal to zero. diff --git a/xml/System.Numerics/BigInteger.xml b/xml/System.Numerics/BigInteger.xml index 3500740b7c3..c5e70635442 100644 --- a/xml/System.Numerics/BigInteger.xml +++ b/xml/System.Numerics/BigInteger.xml @@ -214,6 +214,8 @@ The type is an immutable type that represents an arbitrarily large integer whose value in theory has no upper or lower bounds. The members of the type closely parallel those of other integral types (the , , , , , , , and types). This type differs from the other integral types in .NET, which have a range indicated by their `MinValue` and `MaxValue` properties. +In .NET 11 and later, conversions from to binary floating-point types round the exact integer value once to the nearest representable result. + > [!NOTE] > Because the type is immutable (see [Mutability](#mutability)) and because it has no upper or lower bounds, an can be thrown for any operation that causes a value to grow too large. diff --git a/xml/System.Numerics/Complex.xml b/xml/System.Numerics/Complex.xml index fbc9d03b053..f5367555874 100644 --- a/xml/System.Numerics/Complex.xml +++ b/xml/System.Numerics/Complex.xml @@ -204,6 +204,8 @@ Note that, because the and values, like double-precision floating-point values, can lose precision as a result of numerical operations. This means that strict comparisons for equality of two values may fail, even if the difference between the two values is due to a loss of precision. For more information, see . +In .NET 11 and later, the arithmetic operators and mathematical functions follow C23 Annex G for results involving infinities, NaNs, and signed zeros. + For example, performing exponentiation on the logarithm of a number should return the original number. However, in some cases, the loss of precision of floating-point values can cause slight differences between the two values, as the following example illustrates. :::code language="csharp" source="~/snippets/csharp/System.Numerics/Complex/Overview/precision1.cs" id="Snippet5"::: diff --git a/xml/System.Reflection/Assembly.xml b/xml/System.Reflection/Assembly.xml index 5ed41a73b21..b520703edd2 100644 --- a/xml/System.Reflection/Assembly.xml +++ b/xml/System.Reflection/Assembly.xml @@ -1055,7 +1055,7 @@ Starting in .NET 11, this method supports Native AOT and uses stack trace data t ]]> - Stack trace support is disabled. + In .NET 11 and later, stack trace support is disabled. diff --git a/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml b/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml index 37b391cfc3d..2c71a3074eb 100644 --- a/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml +++ b/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml @@ -318,6 +318,8 @@ ## Remarks Note that a valid X.509 certificate from a trusted issuer is valid only for the use specified in the object. Certificates that meet these chain policy rules might still be invalid for specific uses with such features as Security/MIME (SMIME), Authenticode, or Secure Sockets Layer (SSL). If further processing is required to determine whether the certificate is valid for a specific policy, derive a class from and override the method so that it calls the base class `Build` method first, and then does the additional processing. +On Linux and other OpenSSL-based platforms, .NET 11 and later limit AIA certificate downloads to two per chain build. A chain that requires more than two AIA downloads can't be completed using those downloads alone. + ## Examples diff --git a/xml/System.Security.Cryptography/CompositeMLDsa.xml b/xml/System.Security.Cryptography/CompositeMLDsa.xml index ece1464cb40..f143e19430e 100644 --- a/xml/System.Security.Cryptography/CompositeMLDsa.xml +++ b/xml/System.Security.Cryptography/CompositeMLDsa.xml @@ -1800,7 +1800,7 @@ Determines whether the specified algorithm is supported by the current platform. if the algorithm is supported; otherwise, . - To be added. + On Windows in .NET 11 and later, the native implementation supports , , , and . Use this method to check whether a specific algorithm is supported. is . diff --git a/xml/System.Security.Cryptography/DSA.xml b/xml/System.Security.Cryptography/DSA.xml index 0220813c5b2..0dda6bbc0bd 100644 --- a/xml/System.Security.Cryptography/DSA.xml +++ b/xml/System.Security.Cryptography/DSA.xml @@ -59,6 +59,8 @@ > [!IMPORTANT] > The creators of the DSA algorithm have withdrawn their support for it. Consider using the class or the class instead of the class. Use only for compatibility with legacy applications and data. + +In .NET 11 and later, DSA isn't supported on macOS. Operations that use DSA throw . Two different versions of the DSA algorithm exist. The original form, described in FIPS 186-2, requires the use of SHA-1 as the hash algorithm and supports key lengths from 512 bits to 1024 bits in increments of 64 bits. diff --git a/xml/System.Security.Cryptography/HKDF.xml b/xml/System.Security.Cryptography/HKDF.xml index ac3f311ced6..eecb22cf164 100644 --- a/xml/System.Security.Cryptography/HKDF.xml +++ b/xml/System.Security.Cryptography/HKDF.xml @@ -38,6 +38,8 @@ In situations where the input key material is already a uniformly random bit string, the HKDF standard allows the Extract phase to be skipped and the master key to be used directly as the pseudorandom key. See RFC5869 for more information. +On Windows in .NET 11 and later, throws if the input keying material exceeds 2,048 bytes. throws the same exception if the pseudorandom key exceeds 2,048 bytes. + ]]> @@ -103,6 +105,7 @@ In situations where the input key material is already a uniformly random bit str is . is less than 1. + On Windows in .NET 11 and later, exceeds 2,048 bytes. @@ -145,6 +148,7 @@ In situations where the input key material is already a uniformly random bit str To be added. is empty, or is larger than the maximum allowed length. + On Windows in .NET 11 and later, exceeds 2,048 bytes. @@ -199,6 +203,7 @@ In situations where the input key material is already a uniformly random bit str is . is less than 1. + On Windows in .NET 11 and later, exceeds 2,048 bytes. @@ -239,6 +244,7 @@ In situations where the input key material is already a uniformly random bit str To be added. is empty, or is larger than the maximum allowed length. + On Windows in .NET 11 and later, exceeds 2,048 bytes. diff --git a/xml/System/DateOnly.xml b/xml/System/DateOnly.xml index 7813f5d7ede..372f491f6d2 100644 --- a/xml/System/DateOnly.xml +++ b/xml/System/DateOnly.xml @@ -57,7 +57,7 @@ when a supplied value or format specifier is invalid. +The `TryParse` and `TryParseExact` methods return `false` when the input doesn't match a valid format. In .NET 11 and later, they throw when a supplied value or format specifier is invalid. ]]> diff --git a/xml/System/TimeOnly.xml b/xml/System/TimeOnly.xml index ad2adb954bc..adc57451614 100644 --- a/xml/System/TimeOnly.xml +++ b/xml/System/TimeOnly.xml @@ -57,7 +57,7 @@ when a supplied value or format specifier is invalid. +The `TryParse` and `TryParseExact` methods return `false` when the input doesn't match a valid format. In .NET 11 and later, they throw when a supplied value or format specifier is invalid. ]]> From 2a786f12efb498795b9558ff83c5e8e5a1bcea78 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 28 Sep 2026 20:58:50 -0700 Subject: [PATCH 4/6] Apply batched suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- xml/System.Net.Sockets/SendPacketsElement.xml | 4 ++-- xml/System.Reflection/Assembly.xml | 1 - .../X509Chain.xml | 4 +--- xml/System/Decimal.xml | 2 -- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/xml/System.Net.Sockets/SendPacketsElement.xml b/xml/System.Net.Sockets/SendPacketsElement.xml index 33f698b3eb5..92ef24d31f5 100644 --- a/xml/System.Net.Sockets/SendPacketsElement.xml +++ b/xml/System.Net.Sockets/SendPacketsElement.xml @@ -358,7 +358,7 @@ ]]> - On Windows, the parameter must have been opened for asynchronous reading and writing. In .NET 10 and earlier, this requirement also applied on non-Windows platforms. + On Windows, the parameter must have been opened for asynchronous reading and writing. In .NET 10 and earlier, this requirement also applies on non-Windows platforms. The parameter cannot be . The and parameters must be greater than or equal to zero. @@ -553,7 +553,7 @@ ]]> - On Windows, the parameter must have been opened for asynchronous reading and writing. In .NET 10 and earlier, this requirement also applied on non-Windows platforms. + On Windows, the parameter must have been opened for asynchronous reading and writing. In .NET 10 and earlier, this requirement also applies on non-Windows platforms. The parameter cannot be . The and parameters must be greater than or equal to zero. diff --git a/xml/System.Reflection/Assembly.xml b/xml/System.Reflection/Assembly.xml index b520703edd2..af31603d9bc 100644 --- a/xml/System.Reflection/Assembly.xml +++ b/xml/System.Reflection/Assembly.xml @@ -1046,7 +1046,6 @@ Many members of the class provide information Starting in .NET 11, this method supports Native AOT and uses stack trace data to identify the caller. If the `StackTraceSupport` feature switch is set to `false`, the method throws . - ## Examples The following example gets the calling assembly of the current method. diff --git a/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml b/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml index 2c71a3074eb..d48dbb1d3c2 100644 --- a/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml +++ b/xml/System.Security.Cryptography.X509Certificates/X509Chain.xml @@ -318,9 +318,7 @@ ## Remarks Note that a valid X.509 certificate from a trusted issuer is valid only for the use specified in the object. Certificates that meet these chain policy rules might still be invalid for specific uses with such features as Security/MIME (SMIME), Authenticode, or Secure Sockets Layer (SSL). If further processing is required to determine whether the certificate is valid for a specific policy, derive a class from and override the method so that it calls the base class `Build` method first, and then does the additional processing. -On Linux and other OpenSSL-based platforms, .NET 11 and later limit AIA certificate downloads to two per chain build. A chain that requires more than two AIA downloads can't be completed using those downloads alone. - - +On Linux and other OpenSSL-based platforms, .NET 11 and later versions limit AIA certificate downloads to two per chain build. A chain that requires more than two AIA downloads can't be completed using those downloads alone. ## Examples The following code example opens the current user's personal certificate store, allows you to select a certificate, then writes certificate and certificate chain information to the console. The output depends on the certificate you select. diff --git a/xml/System/Decimal.xml b/xml/System/Decimal.xml index d3a7f6e2a01..750f6e8d0a6 100644 --- a/xml/System/Decimal.xml +++ b/xml/System/Decimal.xml @@ -579,8 +579,6 @@ The following code example demonstrates the use of . ## Remarks In .NET 11 and later, this constructor rounds the exact value of `value` to the nearest representable . - - ## Examples The following code example creates several `Decimal` numbers using the constructor overload that initializes a `Decimal` structure with a value. From 72d48cd4bde8954768f18181e2cb51a839f93d4a Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 29 Sep 2026 09:59:59 -0700 Subject: [PATCH 5/6] Update XML documentation for .NET 11 changes Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml | 2 +- xml/System.IO.Compression/ZipArchive.xml | 2 +- xml/System.IO.Packaging/PackagePart.xml | 2 +- xml/System.IO/FileStream.xml | 2 +- xml/System/Nullable.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml b/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml index ebb6d616437..903f5b84b36 100644 --- a/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml +++ b/xml/Microsoft.Win32.SafeHandles/SafeFileHandle.xml @@ -239,7 +239,7 @@ Gets a value that indicates whether the handle is configured for asynchronous I/O. - if the handle is configured for overlapped I/O on Windows or, in .NET 11 and later, has the O_NONBLOCK flag set on Unix; otherwise, . + if the handle is configured for overlapped I/O on Windows. On Unix, if the handle was configured as asynchronous in .NET 10 and earlier or has the O_NONBLOCK flag set in .NET 11 and later; otherwise, . On Unix, starting in .NET 11, this property reflects whether the file descriptor has the O_NONBLOCK flag set. Regular files return , even if opened with .. diff --git a/xml/System.IO.Compression/ZipArchive.xml b/xml/System.IO.Compression/ZipArchive.xml index 0e4284cdba3..202acab50cc 100644 --- a/xml/System.IO.Compression/ZipArchive.xml +++ b/xml/System.IO.Compression/ZipArchive.xml @@ -429,7 +429,7 @@ If the comment byte length is larger than , it will - In .NET 11 and later, this method reads the archive's central directory and loads its entries asynchronously before it completes. Errors caused by malformed entries are reported by this method; accessing the property afterward doesn't read from the stream. + In .NET 11 and later, when is , this method reads the archive's central directory and loads its entries asynchronously before it completes. Errors caused by malformed entries are reported by this method; accessing the property afterward doesn't read from the stream. The stream is already closed. diff --git a/xml/System.IO.Packaging/PackagePart.xml b/xml/System.IO.Packaging/PackagePart.xml index 67883c2803d..334e2c48317 100644 --- a/xml/System.IO.Packaging/PackagePart.xml +++ b/xml/System.IO.Packaging/PackagePart.xml @@ -1101,7 +1101,7 @@ A part-level relationship defines an association between this part and a target and and hasn't been modified in the current session, the returned stream is non-seekable. ]]> diff --git a/xml/System.IO/FileStream.xml b/xml/System.IO/FileStream.xml index 46ea6776663..1f602d2b554 100644 --- a/xml/System.IO/FileStream.xml +++ b/xml/System.IO/FileStream.xml @@ -2290,7 +2290,7 @@ This method flushes the .NET stream buffers to the file, but does not flush inte Gets a value that indicates whether the underlying handle is configured for asynchronous I/O. - if the handle was opened for overlapped I/O on Windows or, in .NET 11 and later, has the O_NONBLOCK flag set on Unix; otherwise, . + if the handle was opened for overlapped I/O on Windows. On Unix, if the stream was opened for asynchronous I/O in .NET 10 and earlier or the file descriptor has the O_NONBLOCK flag set in .NET 11 and later; otherwise, . is . - The is a custom subclass that doesn't override . + In .NET 11 and later, is a custom subclass that doesn't override . From 150d1db7ff60cf2ed5c74dd8eafa98679a8d20c8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 29 Sep 2026 17:06:43 +0000 Subject: [PATCH 6/6] Address remaining .NET 11 API doc feedback Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com> --- snippets/csharp/System/Math/Round/round3.cs | 9 ++++++++- snippets/csharp/System/Math/Round/round4.cs | 9 ++++++++- snippets/fsharp/System/Math/Round/round3.fs | 9 ++++++++- snippets/fsharp/System/Math/Round/round4.fs | 9 ++++++++- snippets/visualbasic/System/Math/Round/round3.vb | 10 ++++++++-- snippets/visualbasic/System/Math/Round/round4.vb | 10 ++++++++-- xml/System.IO.Packaging/PackagePart.xml | 4 ---- xml/System/DateOnly.xml | 10 ++++++++++ xml/System/Math.xml | 12 ++++++------ xml/System/MathF.xml | 8 ++++---- xml/System/TimeOnly.xml | 10 ++++++++++ 11 files changed, 78 insertions(+), 22 deletions(-) diff --git a/snippets/csharp/System/Math/Round/round3.cs b/snippets/csharp/System/Math/Round/round3.cs index 50545a0fbbe..1c7bde1a5f4 100644 --- a/snippets/csharp/System/Math/Round/round3.cs +++ b/snippets/csharp/System/Math/Round/round3.cs @@ -10,11 +10,18 @@ public static void Run() Console.WriteLine($"{value} --> {Math.Round(value, 2)}"); } } -// The example displays the following output: +// The example displays the following output on .NET 10 and earlier: // 2.125 --> 2.12 // 2.135 --> 2.13 // 2.145 --> 2.14 // 3.125 --> 3.12 // 3.135 --> 3.14 // 3.145 --> 3.14 +// On .NET 11 and later: +// 2.125 --> 2.12 +// 2.135 --> 2.13 +// 2.145 --> 2.15 +// 3.125 --> 3.12 +// 3.135 --> 3.13 +// 3.145 --> 3.15 // diff --git a/snippets/csharp/System/Math/Round/round4.cs b/snippets/csharp/System/Math/Round/round4.cs index 7c4443f8b86..0d437c74bd7 100644 --- a/snippets/csharp/System/Math/Round/round4.cs +++ b/snippets/csharp/System/Math/Round/round4.cs @@ -9,13 +9,20 @@ public static void Run() foreach (double value in values) Console.WriteLine($"{value} --> {Math.Round(value, 2, MidpointRounding.AwayFromZero)}"); - // The example displays the following output: + // The example displays the following output on .NET 10 and earlier: // 2.125 --> 2.13 // 2.135 --> 2.13 // 2.145 --> 2.15 // 3.125 --> 3.13 // 3.135 --> 3.14 // 3.145 --> 3.15 + // On .NET 11 and later: + // 2.125 --> 2.13 + // 2.135 --> 2.13 + // 2.145 --> 2.15 + // 3.125 --> 3.13 + // 3.135 --> 3.13 + // 3.145 --> 3.15 // } } diff --git a/snippets/fsharp/System/Math/Round/round3.fs b/snippets/fsharp/System/Math/Round/round3.fs index 31bf59784ae..e52abae8750 100644 --- a/snippets/fsharp/System/Math/Round/round3.fs +++ b/snippets/fsharp/System/Math/Round/round3.fs @@ -6,11 +6,18 @@ open System let values = [| 2.125; 2.135; 2.145; 3.125; 3.135; 3.145 |] for value in values do printfn $"{value} --> {Math.Round(value, 2)}" -// The example displays the following output: +// The example displays the following output on .NET 10 and earlier: // 2.125 --> 2.12 // 2.135 --> 2.13 // 2.145 --> 2.14 // 3.125 --> 3.12 // 3.135 --> 3.14 // 3.145 --> 3.14 +// On .NET 11 and later: +// 2.125 --> 2.12 +// 2.135 --> 2.13 +// 2.145 --> 2.15 +// 3.125 --> 3.12 +// 3.135 --> 3.13 +// 3.145 --> 3.15 // \ No newline at end of file diff --git a/snippets/fsharp/System/Math/Round/round4.fs b/snippets/fsharp/System/Math/Round/round4.fs index 7e3fe5bd76a..ea735eafb4b 100644 --- a/snippets/fsharp/System/Math/Round/round4.fs +++ b/snippets/fsharp/System/Math/Round/round4.fs @@ -6,11 +6,18 @@ open System let values = [| 2.125; 2.135; 2.145; 3.125; 3.135; 3.145 |] for value in values do printfn $"{value} --> {Math.Round(value, 2, MidpointRounding.AwayFromZero)}" -// The example displays the following output: +// The example displays the following output on .NET 10 and earlier: // 2.125 --> 2.13 // 2.135 --> 2.13 // 2.145 --> 2.15 // 3.125 --> 3.13 // 3.135 --> 3.14 // 3.145 --> 3.15 +// On .NET 11 and later: +// 2.125 --> 2.13 +// 2.135 --> 2.13 +// 2.145 --> 2.15 +// 3.125 --> 3.13 +// 3.135 --> 3.13 +// 3.145 --> 3.15 // \ No newline at end of file diff --git a/snippets/visualbasic/System/Math/Round/round3.vb b/snippets/visualbasic/System/Math/Round/round3.vb index fe809d80dcb..1b1651ef5fc 100644 --- a/snippets/visualbasic/System/Math/Round/round3.vb +++ b/snippets/visualbasic/System/Math/Round/round3.vb @@ -10,12 +10,18 @@ Module Example Next End Sub End Module -' The example displays the following output: +' The example displays the following output on .NET 10 and earlier: ' 2.125 --> 2.12 ' 2.135 --> 2.13 ' 2.145 --> 2.14 ' 3.125 --> 3.12 ' 3.135 --> 3.14 ' 3.145 --> 3.14 +' On .NET 11 and later: +' 2.125 --> 2.12 +' 2.135 --> 2.13 +' 2.145 --> 2.15 +' 3.125 --> 3.12 +' 3.135 --> 3.13 +' 3.145 --> 3.15 ' - diff --git a/snippets/visualbasic/System/Math/Round/round4.vb b/snippets/visualbasic/System/Math/Round/round4.vb index f651bd32dfb..bba8986a913 100644 --- a/snippets/visualbasic/System/Math/Round/round4.vb +++ b/snippets/visualbasic/System/Math/Round/round4.vb @@ -11,12 +11,18 @@ Module Example Next End Sub End Module -' The example displays the following output: +' The example displays the following output on .NET 10 and earlier: ' 2.125 --> 2.13 ' 2.135 --> 2.13 ' 2.145 --> 2.15 ' 3.125 --> 3.13 ' 3.135 --> 3.14 ' 3.145 --> 3.15 +' On .NET 11 and later: +' 2.125 --> 2.13 +' 2.135 --> 2.13 +' 2.145 --> 2.15 +' 3.125 --> 3.13 +' 3.135 --> 3.13 +' 3.145 --> 3.15 ' - diff --git a/xml/System.IO.Packaging/PackagePart.xml b/xml/System.IO.Packaging/PackagePart.xml index 334e2c48317..a8663df5bf5 100644 --- a/xml/System.IO.Packaging/PackagePart.xml +++ b/xml/System.IO.Packaging/PackagePart.xml @@ -977,8 +977,6 @@ A part-level relationship defines an association between this part and a target ## Remarks This method opens the content stream with of and permissions that are the same as the parent . - In .NET 11 and later, when a compressed part in a read/write package is opened for reading and hasn't been modified in the current session, the returned stream is non-seekable. - The overload method allows you to set a specific . ]]> @@ -1038,8 +1036,6 @@ A part-level relationship defines an association between this part and a target ## Remarks The permissions of the returned content stream are the same as the permissions of the parent . - In .NET 11 and later, when a compressed part in a read/write package is opened for reading and hasn't been modified in the current session, the returned stream is non-seekable. - ]]> The part has been deleted. diff --git a/xml/System/DateOnly.xml b/xml/System/DateOnly.xml index 372f491f6d2..7c27a50d50f 100644 --- a/xml/System/DateOnly.xml +++ b/xml/System/DateOnly.xml @@ -1950,6 +1950,7 @@ The property of the resulting if the conversion was successful; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid. @@ -1992,6 +1993,7 @@ The property of the resulting if the conversion was successful; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid. @@ -2038,6 +2040,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter contains an invalid format specifier. @@ -2086,6 +2089,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, one or more entries in contain an invalid format specifier. @@ -2138,6 +2142,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter contains an invalid format specifier. @@ -2189,6 +2194,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, one or more entries in contain an invalid format specifier. @@ -2241,6 +2247,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or the parameter contains an invalid format specifier. @@ -2296,6 +2303,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or one or more entries in contain an invalid format specifier. @@ -2352,6 +2360,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or the parameter contains an invalid format specifier. @@ -2407,6 +2416,7 @@ The property of the resulting if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or one or more entries in contain an invalid format specifier. diff --git a/xml/System/Math.xml b/xml/System/Math.xml index 7ed3244275d..1a18316fb04 100644 --- a/xml/System/Math.xml +++ b/xml/System/Math.xml @@ -6127,7 +6127,7 @@ The following example displays values returned by the value unchanged. +Starting in .NET 11, the `digits` argument can be any non-negative value. Values of 17 or greater leave the value unchanged. In .NET 10 and earlier, `digits` must be between 0 and 15. This method uses the default rounding convention of . See [Midpoint values and rounding conventions](#midpoint-values-and-rounding-conventions) for information about rounding numbers with midpoint values. @@ -6146,9 +6146,9 @@ The following example rounds double values with two fractional digits to doubles ]]> - is less than 0. + is less than 0. In .NET 10 and earlier, it is greater than 15. - Because most decimal fractions can't be represented exactly as floating-point values, rounding uses the exact value stored in . For example, the stored value for 2.135 is slightly less than 2.135, so rounding it to two fractional digits produces 2.13. + Starting in .NET 11, rounding uses the exact value stored in . Because most decimal fractions can't be represented exactly as floating-point values, the stored value can be slightly below or above the expected midpoint. For example, the stored value for 2.135 is slightly less than 2.135, so rounding it to two fractional digits produces 2.13. :::code language="csharp" source="~/snippets/csharp/System/Math/Round/round3.cs" id="Snippet2"::: :::code language="fsharp" source="~/snippets/fsharp/System/Math/Round/round3.fs" id="Snippet2"::: @@ -6379,7 +6379,7 @@ The following example demonstrates how to use the meth ## Remarks -The `digits` argument can be any non-negative value. Values of 17 or greater leave the value unchanged. +Starting in .NET 11, the `digits` argument can be any non-negative value. Values of 17 or greater leave the value unchanged. In .NET 10 and earlier, `digits` must be between 0 and 15. See [Midpoint values and rounding conventions](#midpoint-values-and-rounding-conventions) for information about rounding numbers with midpoint values. @@ -6398,11 +6398,11 @@ The following example demonstrates how to use the - is less than 0. + is less than 0. In .NET 10 and earlier, it is greater than 15. is not a valid value of . - Because most decimal fractions can't be represented exactly as floating-point values, rounding uses the exact value stored in . For example, the stored value for 2.135 is slightly less than 2.135, so rounding it to two fractional digits produces 2.13. + Starting in .NET 11, rounding uses the exact value stored in . Because most decimal fractions can't be represented exactly as floating-point values, the stored value can be slightly below or above the expected midpoint. For example, the stored value for 2.135 is slightly less than 2.135, so rounding it to two fractional digits produces 2.13. :::code language="csharp" source="~/snippets/csharp/System/Math/Round/round4.cs" id="Snippet3"::: :::code language="fsharp" source="~/snippets/fsharp/System/Math/Round/round4.fs" id="Snippet3"::: diff --git a/xml/System/MathF.xml b/xml/System/MathF.xml index 7e6639d0a86..95222ca68d4 100644 --- a/xml/System/MathF.xml +++ b/xml/System/MathF.xml @@ -2054,7 +2054,7 @@ If the value of the `x` argument is value unchanged. +Starting in .NET 11, the `digits` argument can be any non-negative value. Values of 9 or greater leave the value unchanged. In .NET 10 and earlier, `digits` must be between 0 and 6. This method uses the default rounding convention of . @@ -2065,7 +2065,7 @@ If the value of the `x` argument is - is less than 0. + is less than 0. In .NET 10 and earlier, it is greater than 6. @@ -2192,7 +2192,7 @@ If the value of the `x` argument is value unchanged. +Starting in .NET 11, the `digits` argument can be any non-negative value. Values of 9 or greater leave the value unchanged. In .NET 10 and earlier, `digits` must be between 0 and 6. [!INCLUDE[midpoint-rounding](~/includes/floating-point-equality.md)] @@ -2201,7 +2201,7 @@ If the value of the `x` argument is - is less than 0. + is less than 0. In .NET 10 and earlier, it is greater than 6. is not a valid value of . diff --git a/xml/System/TimeOnly.xml b/xml/System/TimeOnly.xml index adc57451614..df9bffc9c03 100644 --- a/xml/System/TimeOnly.xml +++ b/xml/System/TimeOnly.xml @@ -2363,6 +2363,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid. @@ -2406,6 +2407,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid. @@ -2452,6 +2454,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter contains an invalid format specifier. @@ -2500,6 +2503,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, one or more entries in contain an invalid format specifier. @@ -2552,6 +2556,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter contains an invalid format specifier. @@ -2603,6 +2608,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, one or more entries in contain an invalid format specifier. @@ -2655,6 +2661,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or the parameter contains an invalid format specifier. @@ -2710,6 +2717,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or one or more entries in contain an invalid format specifier. @@ -2766,6 +2774,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or the parameter contains an invalid format specifier. @@ -2821,6 +2830,7 @@ The accepted standard formats are 'r', 'R', 'o', 'O', 't', and 'T'. if was converted successfully; otherwise, . To be added. + In .NET 11 and later, the parameter is invalid or one or more entries in contain an invalid format specifier.