Xamarin.iOS SDK API diff: 12.4.0 vs 12.8.0

Mono.Security.dll

Namespace Mono.Security.Interface

Type Changed: Mono.Security.Interface.IMonoSslStream

Added property:

public virtual bool CanRenegotiate { get; }

Added methods:

public virtual void AuthenticateAsClient (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation);
public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation);
public virtual void AuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation);
public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation);
public virtual System.IAsyncResult BeginAuthenticateAsClient (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState);
public virtual System.IAsyncResult BeginAuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState);
public virtual System.Threading.Tasks.Task RenegotiateAsync (System.Threading.CancellationToken cancellationToken);

Type Changed: Mono.Security.Interface.MonoTlsSettings

Added properties:

public string[] ClientCertificateIssuers { get; set; }
public bool DisallowUnauthenticatedCertificateRequest { get; set; }

Namespace Mono.Xml

Type Changed: Mono.Xml.MiniParser

Type Changed: Mono.Xml.MiniParser.AttrListImpl

Added interfaces:

MiniParser.IAttrList
MiniParser.IMutableAttrList

Type Changed: Mono.Xml.MiniParser.HandlerAdapter

Added interface:

MiniParser.IHandler

Type Changed: Mono.Xml.MiniParser.IMutableAttrList

Added interface:

MiniParser.IAttrList

Type Changed: Mono.Xml.SecurityParser

Added interfaces:

MiniParser.IHandler
MiniParser.IReader

mscorlib.dll

Namespace System

Type Changed: System.AggregateException

Added property:

public override string Message { get; }

Type Changed: System.ArraySegment`1

Added properties:

public static System.ArraySegment<T> Empty { get; }
public T Item { get; set; }

Added methods:

public void CopyTo (System.ArraySegment<T> destination);
public void CopyTo (T[] destination);
public virtual void CopyTo (T[] destination, int destinationIndex);
public System.ArraySegment<Enumerator[T> GetEnumerator ();
public System.ArraySegment<T> Slice (int index);
public System.ArraySegment<T> Slice (int index, int count);
public T[] ToArray ();
public static System.ArraySegment<T> op_Implicit (T[] array);

Type Changed: System.BitConverter

Added methods:

public static float Int32BitsToSingle (int value);
public static int SingleToInt32Bits (float value);
public static int ToInt32 (System.ReadOnlySpan<byte> value);
public static uint ToUInt32 (System.ReadOnlySpan<byte> value);
public static ulong ToUInt64 (System.ReadOnlySpan<byte> value);

Type Changed: System.Boolean

Added methods:

public static bool Parse (System.ReadOnlySpan<char> value);
public bool TryFormat (System.Span<char> destination, out int charsWritten);
public static bool TryParse (System.ReadOnlySpan<char> value, out bool result);

Type Changed: System.Byte

Added methods:

public static byte Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out byte result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out byte result);

Type Changed: System.Convert

Added methods:

public static string ToBase64String (System.ReadOnlySpan<byte> bytes, Base64FormattingOptions options);
public static bool TryFromBase64Chars (System.ReadOnlySpan<char> chars, System.Span<byte> bytes, out int bytesWritten);
public static bool TryFromBase64String (string s, System.Span<byte> bytes, out int bytesWritten);
public static bool TryToBase64Chars (System.ReadOnlySpan<byte> bytes, System.Span<char> chars, out int charsWritten, Base64FormattingOptions options);

Type Changed: System.Decimal

Added methods:

public static Decimal Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out Decimal result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out Decimal result);

Type Changed: System.Double

Added methods:

public static bool IsNegative (double d);
public static bool IsNormal (double d);
public static bool IsSubnormal (double d);
public static double Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out double result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out double result);

Type Changed: System.Guid

Added constructor:

public Guid (System.ReadOnlySpan<byte> b);

Added methods:

public static Guid Parse (System.ReadOnlySpan<char> input);
public static Guid ParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format);
public bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format);
public static bool TryParse (System.ReadOnlySpan<char> input, out Guid result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format, out Guid result);
public bool TryWriteBytes (System.Span<byte> destination);

Type Changed: System.Int16

Added methods:

public static short Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out short result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out short result);

Type Changed: System.Int32

Added methods:

public static int Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out int result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out int result);

Type Changed: System.Int64

Added methods:

public static long Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out long result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out long result);

Type Changed: System.Lazy`1

Added constructor:

public Lazy`1 (T value);

Type Changed: System.Math

Added methods:

public static byte Clamp (byte value, byte min, byte max);
public static Decimal Clamp (Decimal value, Decimal min, Decimal max);
public static double Clamp (double value, double min, double max);
public static short Clamp (short value, short min, short max);
public static int Clamp (int value, int min, int max);
public static long Clamp (long value, long min, long max);
public static sbyte Clamp (sbyte value, sbyte min, sbyte max);
public static float Clamp (float value, float min, float max);
public static ushort Clamp (ushort value, ushort min, ushort max);
public static uint Clamp (uint value, uint min, uint max);
public static ulong Clamp (ulong value, ulong min, ulong max);

Type Changed: System.SByte

Added methods:

public static sbyte Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out sbyte result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out sbyte result);

Type Changed: System.Single

Added methods:

public static bool IsNegative (float f);
public static bool IsNormal (float f);
public static bool IsSubnormal (float f);
public static float Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out float result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out float result);

Type Changed: System.String

Added constructor:

public String (System.ReadOnlySpan<char> value);

Added methods:

public static string Create<TState> (int length, TState state, System.Buffers.SpanAction<Char,TState> action);
public static System.ReadOnlySpan<char> op_Implicit (string value);

Type Changed: System.TimeSpan

Added methods:

public static TimeSpan op_Division (TimeSpan timeSpan, double divisor);
public static double op_Division (TimeSpan t1, TimeSpan t2);

Type Changed: System.UInt16

Added methods:

public static ushort Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out ushort result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out ushort result);

Type Changed: System.UInt32

Added methods:

public static uint Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out uint result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out uint result);

Type Changed: System.UInt64

Added methods:

public static ulong Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out ulong result);
public static bool TryParse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style, IFormatProvider provider, out ulong result);

New Type: System.HashCode

public struct HashCode {
	// methods
	public void Add<T> (T value);
	public void Add<T> (T value, System.Collections.Generic.IEqualityComparer<T> comparer);
	public static int Combine<T1> (T1 value1);
	public static int Combine<T1, T2> (T1 value1, T2 value2);
	public static int Combine<T1, T2, T3> (T1 value1, T2 value2, T3 value3);
	public static int Combine<T1, T2, T3, T4> (T1 value1, T2 value2, T3 value3, T4 value4);
	public static int Combine<T1, T2, T3, T4, T5> (T1 value1, T2 value2, T3 value3, T4 value4, T5 value5);
	public static int Combine<T1, T2, T3, T4, T5, T6> (T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6);
	public static int Combine<T1, T2, T3, T4, T5, T6, T7> (T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7);
	public static int Combine<T1, T2, T3, T4, T5, T6, T7, T8> (T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8);

	[Obsolete ("HashCode is a mutable struct and should not be compared with other HashCodes.")]
public override bool Equals (object obj);

	[Obsolete ("HashCode is a mutable struct and should not be compared with other HashCodes. Use ToHashCode to retrieve the computed hash code.")]
public override int GetHashCode ();
	public int ToHashCode ();
}

New Type: System.MathF

public static class MathF {
	// fields
	public static const float E;
	public static const float PI;
	// methods
	public static float Abs (float x);
	public static float Acos (float x);
	public static float Acosh (float x);
	public static float Asin (float x);
	public static float Asinh (float x);
	public static float Atan (float x);
	public static float Atan2 (float y, float x);
	public static float Atanh (float x);
	public static float Cbrt (float x);
	public static float Ceiling (float x);
	public static float Cos (float x);
	public static float Cosh (float x);
	public static float Exp (float x);
	public static float Floor (float x);
	public static float IEEERemainder (float x, float y);
	public static float Log (float x);
	public static float Log (float x, float y);
	public static float Log10 (float x);
	public static float Max (float x, float y);
	public static float Min (float x, float y);
	public static float Pow (float x, float y);
	public static float Round (float x);
	public static float Round (float x, int digits);
	public static float Round (float x, MidpointRounding mode);
	public static float Round (float x, int digits, MidpointRounding mode);
	public static int Sign (float x);
	public static float Sin (float x);
	public static float Sinh (float x);
	public static float Sqrt (float x);
	public static float Tan (float x);
	public static float Tanh (float x);
	public static float Truncate (float x);
}

New Type: System.MemoryExtensions

public static class MemoryExtensions {
	// methods
	public static System.Memory<T> AsMemory<T> (this System.ArraySegment<T> segment);
	public static System.ReadOnlyMemory<char> AsMemory (this string text);
	public static System.Memory<T> AsMemory<T> (this T[] array);
	public static System.Memory<T> AsMemory<T> (this System.ArraySegment<T> segment, int start);
	public static System.ReadOnlyMemory<char> AsMemory (this string text, int start);
	public static System.Memory<T> AsMemory<T> (this T[] array, int start);
	public static System.Memory<T> AsMemory<T> (this System.ArraySegment<T> segment, int start, int length);
	public static System.ReadOnlyMemory<char> AsMemory (this string text, int start, int length);
	public static System.Memory<T> AsMemory<T> (this T[] array, int start, int length);
	public static System.Span<T> AsSpan<T> (this System.ArraySegment<T> segment);
	public static System.ReadOnlySpan<char> AsSpan (this string text);
	public static System.Span<T> AsSpan<T> (this T[] array);
	public static System.Span<T> AsSpan<T> (this System.ArraySegment<T> segment, int start);
	public static System.ReadOnlySpan<char> AsSpan (this string text, int start);
	public static System.Span<T> AsSpan<T> (this T[] array, int start);
	public static System.Span<T> AsSpan<T> (this System.ArraySegment<T> segment, int start, int length);
	public static System.ReadOnlySpan<char> AsSpan (this string text, int start, int length);
	public static System.Span<T> AsSpan<T> (this T[] array, int start, int length);
	public static int BinarySearch<T> (this System.ReadOnlySpan<T> span, System.IComparable<T> comparable);
	public static int BinarySearch<T, TComparable> (this System.ReadOnlySpan<T> span, TComparable comparable);
	public static int BinarySearch<T> (this System.Span<T> span, System.IComparable<T> comparable);
	public static int BinarySearch<T, TComparable> (this System.Span<T> span, TComparable comparable);
	public static int BinarySearch<T, TComparer> (this System.ReadOnlySpan<T> span, T value, TComparer comparer);
	public static int BinarySearch<T, TComparer> (this System.Span<T> span, T value, TComparer comparer);
	public static int CompareTo (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> other, StringComparison comparisonType);
	public static bool Contains (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> value, StringComparison comparisonType);
	public static void CopyTo<T> (this T[] source, System.Memory<T> destination);
	public static void CopyTo<T> (this T[] source, System.Span<T> destination);
	public static bool EndsWith<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> value);
	public static bool EndsWith<T> (this System.Span<T> span, System.ReadOnlySpan<T> value);
	public static bool EndsWith (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> value, StringComparison comparisonType);
	public static bool Equals (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> other, StringComparison comparisonType);
	public static int IndexOf<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> value);
	public static int IndexOf<T> (this System.ReadOnlySpan<T> span, T value);
	public static int IndexOf<T> (this System.Span<T> span, System.ReadOnlySpan<T> value);
	public static int IndexOf<T> (this System.Span<T> span, T value);
	public static int IndexOf (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> value, StringComparison comparisonType);
	public static int IndexOfAny<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> values);
	public static int IndexOfAny<T> (this System.Span<T> span, System.ReadOnlySpan<T> values);
	public static int IndexOfAny<T> (this System.ReadOnlySpan<T> span, T value0, T value1);
	public static int IndexOfAny<T> (this System.Span<T> span, T value0, T value1);
	public static int IndexOfAny<T> (this System.ReadOnlySpan<T> span, T value0, T value1, T value2);
	public static int IndexOfAny<T> (this System.Span<T> span, T value0, T value1, T value2);
	public static bool IsWhiteSpace (this System.ReadOnlySpan<char> span);
	public static int LastIndexOf<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> value);
	public static int LastIndexOf<T> (this System.ReadOnlySpan<T> span, T value);
	public static int LastIndexOf<T> (this System.Span<T> span, System.ReadOnlySpan<T> value);
	public static int LastIndexOf<T> (this System.Span<T> span, T value);
	public static int LastIndexOfAny<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> values);
	public static int LastIndexOfAny<T> (this System.Span<T> span, System.ReadOnlySpan<T> values);
	public static int LastIndexOfAny<T> (this System.ReadOnlySpan<T> span, T value0, T value1);
	public static int LastIndexOfAny<T> (this System.Span<T> span, T value0, T value1);
	public static int LastIndexOfAny<T> (this System.ReadOnlySpan<T> span, T value0, T value1, T value2);
	public static int LastIndexOfAny<T> (this System.Span<T> span, T value0, T value1, T value2);
	public static bool Overlaps<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> other);
	public static bool Overlaps<T> (this System.Span<T> span, System.ReadOnlySpan<T> other);
	public static bool Overlaps<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> other, out int elementOffset);
	public static bool Overlaps<T> (this System.Span<T> span, System.ReadOnlySpan<T> other, out int elementOffset);
	public static void Reverse<T> (this System.Span<T> span);
	public static int SequenceCompareTo<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> other);
	public static int SequenceCompareTo<T> (this System.Span<T> span, System.ReadOnlySpan<T> other);
	public static bool SequenceEqual<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> other);
	public static bool SequenceEqual<T> (this System.Span<T> span, System.ReadOnlySpan<T> other);
	public static bool StartsWith<T> (this System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> value);
	public static bool StartsWith<T> (this System.Span<T> span, System.ReadOnlySpan<T> value);
	public static bool StartsWith (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> value, StringComparison comparisonType);
	public static int ToLower (this System.ReadOnlySpan<char> source, System.Span<char> destination, Globalization.CultureInfo culture);
	public static int ToLowerInvariant (this System.ReadOnlySpan<char> source, System.Span<char> destination);
	public static int ToUpper (this System.ReadOnlySpan<char> source, System.Span<char> destination, Globalization.CultureInfo culture);
	public static int ToUpperInvariant (this System.ReadOnlySpan<char> source, System.Span<char> destination);
	public static System.ReadOnlySpan<char> Trim (this System.ReadOnlySpan<char> span);
	public static System.ReadOnlySpan<char> Trim (this System.ReadOnlySpan<char> span, char trimChar);
	public static System.ReadOnlySpan<char> Trim (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> trimChars);
	public static System.ReadOnlySpan<char> TrimEnd (this System.ReadOnlySpan<char> span);
	public static System.ReadOnlySpan<char> TrimEnd (this System.ReadOnlySpan<char> span, char trimChar);
	public static System.ReadOnlySpan<char> TrimEnd (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> trimChars);
	public static System.ReadOnlySpan<char> TrimStart (this System.ReadOnlySpan<char> span);
	public static System.ReadOnlySpan<char> TrimStart (this System.ReadOnlySpan<char> span, char trimChar);
	public static System.ReadOnlySpan<char> TrimStart (this System.ReadOnlySpan<char> span, System.ReadOnlySpan<char> trimChars);
}

New Type: System.Memory`1

public struct Memory`1 {
	// constructors
	public Memory`1 (T[] array);
	public Memory`1 (T[] array, int start, int length);
	// properties
	public static System.Memory<T> Empty { get; }
	public bool IsEmpty { get; }
	public int Length { get; }
	public System.Span<T> Span { get; }
	// methods
	public void CopyTo (System.Memory<T> destination);
	public bool Equals (System.Memory<T> other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public Buffers.MemoryHandle Pin ();
	public System.Memory<T> Slice (int start);
	public System.Memory<T> Slice (int start, int length);
	public T[] ToArray ();
	public override string ToString ();
	public bool TryCopyTo (System.Memory<T> destination);
	public static System.Memory<T> op_Implicit (System.ArraySegment<T> segment);
	public static System.ReadOnlyMemory<T> op_Implicit (System.Memory<T> memory);
	public static System.Memory<T> op_Implicit (T[] array);
}

New Type: System.ReadOnlyMemory`1

public struct ReadOnlyMemory`1 {
	// constructors
	public ReadOnlyMemory`1 (T[] array);
	public ReadOnlyMemory`1 (T[] array, int start, int length);
	// properties
	public static System.ReadOnlyMemory<T> Empty { get; }
	public bool IsEmpty { get; }
	public int Length { get; }
	public System.ReadOnlySpan<T> Span { get; }
	// methods
	public void CopyTo (System.Memory<T> destination);
	public override bool Equals (object obj);
	public bool Equals (System.ReadOnlyMemory<T> other);
	public override int GetHashCode ();
	public Buffers.MemoryHandle Pin ();
	public System.ReadOnlyMemory<T> Slice (int start);
	public System.ReadOnlyMemory<T> Slice (int start, int length);
	public T[] ToArray ();
	public override string ToString ();
	public bool TryCopyTo (System.Memory<T> destination);
	public static System.ReadOnlyMemory<T> op_Implicit (System.ArraySegment<T> segment);
	public static System.ReadOnlyMemory<T> op_Implicit (T[] array);
}

New Type: System.ReadOnlySpan`1

public struct ReadOnlySpan`1 {
	// constructors
	public ReadOnlySpan`1 (T[] array);
	public ReadOnlySpan`1 (void* pointer, int length);
	public ReadOnlySpan`1 (T[] array, int start, int length);
	// properties
	public static System.ReadOnlySpan<T> Empty { get; }
	public bool IsEmpty { get; }
	public T& modreq(System.Runtime.InteropServices.InAttribute) Item { get; }
	public int Length { get; }
	// methods
	public void CopyTo (System.Span<T> destination);

	[Obsolete ("Equals() on ReadOnlySpan will always throw an exception. Use == instead.")]
public override bool Equals (object obj);
	public System.ReadOnlySpan<Enumerator[T> GetEnumerator ();

	[Obsolete ("GetHashCode() on ReadOnlySpan will always throw an exception.")]
public override int GetHashCode ();
	public T& modreq(System.Runtime.InteropServices.InAttribute) GetPinnableReference ();
	public System.ReadOnlySpan<T> Slice (int start);
	public System.ReadOnlySpan<T> Slice (int start, int length);
	public T[] ToArray ();
	public override string ToString ();
	public bool TryCopyTo (System.Span<T> destination);
	public static bool op_Equality (System.ReadOnlySpan<T> left, System.ReadOnlySpan<T> right);
	public static System.ReadOnlySpan<T> op_Implicit (System.ArraySegment<T> segment);
	public static System.ReadOnlySpan<T> op_Implicit (T[] array);
	public static bool op_Inequality (System.ReadOnlySpan<T> left, System.ReadOnlySpan<T> right);

	// inner types
	public struct Enumerator {
		// properties
		public T& modreq(System.Runtime.InteropServices.InAttribute) Current { get; }
		// methods
		public bool MoveNext ();
	}
}

New Type: System.SequencePosition

public struct SequencePosition, System.IEquatable<SequencePosition> {
	// constructors
	public SequencePosition (object object, int integer);
	// methods
	public override bool Equals (object obj);
	public virtual bool Equals (SequencePosition other);
	public override int GetHashCode ();
	public int GetInteger ();
	public object GetObject ();
}

New Type: System.Span`1

public struct Span`1 {
	// constructors
	public Span`1 (T[] array);
	public Span`1 (void* pointer, int length);
	public Span`1 (T[] array, int start, int length);
	// properties
	public static System.Span<T> Empty { get; }
	public bool IsEmpty { get; }
	public  T Item { get; }
	public int Length { get; }
	// methods
	public void Clear ();
	public void CopyTo (System.Span<T> destination);

	[Obsolete ("Equals() on Span will always throw an exception. Use == instead.")]
public override bool Equals (object obj);
	public void Fill (T value);
	public System.Span<Enumerator[T> GetEnumerator ();

	[Obsolete ("GetHashCode() on Span will always throw an exception.")]
public override int GetHashCode ();
	public  T GetPinnableReference ();
	public System.Span<T> Slice (int start);
	public System.Span<T> Slice (int start, int length);
	public T[] ToArray ();
	public override string ToString ();
	public bool TryCopyTo (System.Span<T> destination);
	public static bool op_Equality (System.Span<T> left, System.Span<T> right);
	public static System.Span<T> op_Implicit (System.ArraySegment<T> segment);
	public static System.ReadOnlySpan<T> op_Implicit (System.Span<T> span);
	public static System.Span<T> op_Implicit (T[] array);
	public static bool op_Inequality (System.Span<T> left, System.Span<T> right);

	// inner types
	public struct Enumerator {
		// properties
		public  T Current { get; }
		// methods
		public bool MoveNext ();
	}
}

Namespace System.Buffers

New Type: System.Buffers.ArrayPool`1

public abstract class ArrayPool`1 {
	// constructors
	protected ArrayPool`1 ();
	// properties
	public static System.Buffers.ArrayPool<T> Shared { get; }
	// methods
	public static System.Buffers.ArrayPool<T> Create ();
	public static System.Buffers.ArrayPool<T> Create (int maxArrayLength, int maxArraysPerBucket);
	public virtual T[] Rent (int minimumLength);
	public virtual void Return (T[] array, bool clearArray);
}

New Type: System.Buffers.BuffersExtensions

public static class BuffersExtensions {
	// methods
	public static void CopyTo<T> (ref System.Buffers.ReadOnlySequence<T> source, System.Span<T> destination);
	public static System.SequencePosition? PositionOf<T> (ref System.Buffers.ReadOnlySequence<T> source, T value);
	public static T[] ToArray<T> (ref System.Buffers.ReadOnlySequence<T> sequence);
	public static void Write<T> (this System.Buffers.IBufferWriter<T> writer, System.ReadOnlySpan<T> value);
}

New Type: System.Buffers.IBufferWriter`1

public interface IBufferWriter`1 {
	// methods
	public virtual void Advance (int count);
	public virtual System.Memory<T> GetMemory (int sizeHint);
	public virtual System.Span<T> GetSpan (int sizeHint);
}

New Type: System.Buffers.IMemoryOwner`1

public interface IMemoryOwner`1 : System.IDisposable {
	// properties
	public virtual System.Memory<T> Memory { get; }
}

New Type: System.Buffers.IPinnable

public interface IPinnable {
	// methods
	public virtual MemoryHandle Pin (int elementIndex);
	public virtual void Unpin ();
}

New Type: System.Buffers.MemoryHandle

public struct MemoryHandle, System.IDisposable {
	// constructors
	public MemoryHandle (void* pointer, System.Runtime.InteropServices.GCHandle handle, IPinnable pinnable);
	// properties
	public void* Pointer { get; }
	// methods
	public virtual void Dispose ();
}

New Type: System.Buffers.MemoryManager`1

public abstract class MemoryManager`1 : System.Buffers.IMemoryOwner<T>, IPinnable, System.IDisposable {
	// constructors
	protected MemoryManager`1 ();
	// properties
	public virtual System.Memory<T> Memory { get; }
	// methods
	protected System.Memory<T> CreateMemory (int length);
	protected System.Memory<T> CreateMemory (int start, int length);
	protected virtual void Dispose (bool disposing);
	public virtual System.Span<T> GetSpan ();
	public virtual MemoryHandle Pin (int elementIndex);
	protected virtual bool TryGetArray (out System.ArraySegment<T> segment);
	public virtual void Unpin ();
}

New Type: System.Buffers.MemoryPool`1

public abstract class MemoryPool`1 : System.IDisposable {
	// constructors
	protected MemoryPool`1 ();
	// properties
	public virtual int MaxBufferSize { get; }
	public static System.Buffers.MemoryPool<T> Shared { get; }
	// methods
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	public virtual System.Buffers.IMemoryOwner<T> Rent (int minBufferSize);
}

New Type: System.Buffers.ReadOnlySequenceSegment`1

public abstract class ReadOnlySequenceSegment`1 {
	// constructors
	protected ReadOnlySequenceSegment`1 ();
	// properties
	protected System.ReadOnlyMemory<T> Memory { get; set; }
	protected System.Buffers.ReadOnlySequenceSegment<T> Next { get; set; }
	protected long RunningIndex { get; set; }
}

New Type: System.Buffers.ReadOnlySequence`1

public struct ReadOnlySequence`1 {
	// constructors
	public ReadOnlySequence`1 (System.ReadOnlyMemory<T> memory);
	public ReadOnlySequence`1 (T[] array);
	public ReadOnlySequence`1 (T[] array, int start, int length);
	public ReadOnlySequence`1 (System.Buffers.ReadOnlySequenceSegment<T> startSegment, int startIndex, System.Buffers.ReadOnlySequenceSegment<T> endSegment, int endIndex);
	// fields
	public static System.Buffers.ReadOnlySequence<T> Empty;
	// properties
	public System.SequencePosition End { get; }
	public System.ReadOnlyMemory<T> First { get; }
	public bool IsEmpty { get; }
	public bool IsSingleSegment { get; }
	public long Length { get; }
	public System.SequencePosition Start { get; }
	// methods
	public System.Buffers.ReadOnlySequence<Enumerator[T> GetEnumerator ();
	public System.SequencePosition GetPosition (long offset);
	public System.SequencePosition GetPosition (long offset, System.SequencePosition origin);
	public System.Buffers.ReadOnlySequence<T> Slice (long start);
	public System.Buffers.ReadOnlySequence<T> Slice (System.SequencePosition start);
	public System.Buffers.ReadOnlySequence<T> Slice (int start, int length);
	public System.Buffers.ReadOnlySequence<T> Slice (int start, System.SequencePosition end);
	public System.Buffers.ReadOnlySequence<T> Slice (long start, long length);
	public System.Buffers.ReadOnlySequence<T> Slice (long start, System.SequencePosition end);
	public System.Buffers.ReadOnlySequence<T> Slice (System.SequencePosition start, int length);
	public System.Buffers.ReadOnlySequence<T> Slice (System.SequencePosition start, long length);
	public System.Buffers.ReadOnlySequence<T> Slice (System.SequencePosition start, System.SequencePosition end);
	public override string ToString ();
	public bool TryGet (ref System.SequencePosition position, out System.ReadOnlyMemory<T> memory, bool advance);

	// inner types
	public struct Enumerator {
		// constructors
		public ReadOnlySequence`1.Enumerator (ref System.Buffers.ReadOnlySequence<T> sequence);
		// properties
		public System.ReadOnlyMemory<T> Current { get; }
		// methods
		public bool MoveNext ();
	}
}

New Type: System.Buffers.ReadOnlySpanAction`2

public sealed delegate ReadOnlySpanAction`2 : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public ReadOnlySpanAction`2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.ReadOnlySpan<T> span, TArg arg, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (System.ReadOnlySpan<T> span, TArg arg);
}

New Type: System.Buffers.SpanAction`2

public sealed delegate SpanAction`2 : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public SpanAction`2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.Span<T> span, TArg arg, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (System.Span<T> span, TArg arg);
}

New Type: System.Buffers.StandardFormat

public struct StandardFormat, System.IEquatable<StandardFormat> {
	// constructors
	public StandardFormat (char symbol, byte precision);
	// fields
	public static const byte MaxPrecision;
	public static const byte NoPrecision;
	// properties
	public bool HasPrecision { get; }
	public bool IsDefault { get; }
	public byte Precision { get; }
	public char Symbol { get; }
	// methods
	public virtual bool Equals (StandardFormat other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static StandardFormat Parse (System.ReadOnlySpan<char> format);
	public static StandardFormat Parse (string format);
	public override string ToString ();
	public static bool op_Equality (StandardFormat left, StandardFormat right);
	public static StandardFormat op_Implicit (char symbol);
	public static bool op_Inequality (StandardFormat left, StandardFormat right);
}

Namespace System.Collections.Generic

Type Changed: System.Collections.Generic.Dictionary`2

Added methods:

public void TrimExcess ();
public void TrimExcess (int capacity);

Namespace System.Globalization

Type Changed: System.Globalization.CharUnicodeInfo

Added method:

public static UnicodeCategory GetUnicodeCategory (int codePoint);

Namespace System.IO

Type Changed: System.IO.Path

Added method:

public static System.ReadOnlySpan<char> GetFileName (System.ReadOnlySpan<char> path);

Type Changed: System.IO.Stream

Added methods:

public virtual int Read (System.Span<byte> destination);
public virtual System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> destination, System.Threading.CancellationToken cancellationToken);
public virtual void Write (System.ReadOnlySpan<byte> source);
public virtual System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken);

Namespace System.Reflection

Type Changed: System.Reflection.ReflectionTypeLoadException

Added property:

public override string Message { get; }

Added method:

public override string ToString ();

Namespace System.Runtime.InteropServices

New Type: System.Runtime.InteropServices.MemoryMarshal

public static class MemoryMarshal {
	// methods
	public static System.ReadOnlySpan<byte> AsBytes<T> (System.ReadOnlySpan<T> span);
	public static System.Span<byte> AsBytes<T> (System.Span<T> span);
	public static System.Memory<T> AsMemory<T> (System.ReadOnlyMemory<T> memory);
	public static System.ReadOnlySpan<TTo> Cast<TFrom, TTo> (System.ReadOnlySpan<TFrom> span);
	public static System.Span<TTo> Cast<TFrom, TTo> (System.Span<TFrom> span);
	public static System.Memory<T> CreateFromPinnedArray<T> (T[] array, int start, int length);
	public static System.ReadOnlySpan<T> CreateReadOnlySpan<T> (ref T reference, int length);
	public static System.Span<T> CreateSpan<T> (ref T reference, int length);
	public static  T GetReference<T> (System.ReadOnlySpan<T> span);
	public static  T GetReference<T> (System.Span<T> span);
	public static T Read<T> (System.ReadOnlySpan<byte> source);
	public static System.Collections.Generic.IEnumerable<T> ToEnumerable<T> (System.ReadOnlyMemory<T> memory);
	public static bool TryGetArray<T> (System.ReadOnlyMemory<T> memory, out System.ArraySegment<T> segment);
	public static bool TryGetMemoryManager<T, TManager> (System.ReadOnlyMemory<T> memory, out TManager manager);
	public static bool TryGetMemoryManager<T, TManager> (System.ReadOnlyMemory<T> memory, out TManager manager, out int start, out int length);
	public static bool TryGetString (System.ReadOnlyMemory<char> memory, out string text, out int start, out int length);
	public static bool TryRead<T> (System.ReadOnlySpan<byte> source, out T value);
	public static bool TryWrite<T> (System.Span<byte> destination, ref T value);
	public static void Write<T> (System.Span<byte> destination, ref T value);
}

New Type: System.Runtime.InteropServices.SequenceMarshal

public static class SequenceMarshal {
	// methods
	public static bool TryGetArray<T> (System.Buffers.ReadOnlySequence<T> sequence, out System.ArraySegment<T> segment);
	public static bool TryGetReadOnlyMemory<T> (System.Buffers.ReadOnlySequence<T> sequence, out System.ReadOnlyMemory<T> memory);
	public static bool TryGetReadOnlySequenceSegment<T> (System.Buffers.ReadOnlySequence<T> sequence, out System.Buffers.ReadOnlySequenceSegment<T> startSegment, out int startIndex, out System.Buffers.ReadOnlySequenceSegment<T> endSegment, out int endIndex);
}

Namespace System.Security.Cryptography.X509Certificates

Type Changed: System.Security.Cryptography.X509Certificates.X509Certificate

Added methods:

public virtual byte[] GetCertHash (System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
public virtual string GetCertHashString (System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
public virtual bool TryGetCertHash (System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Span<byte> destination, out int bytesWritten);

Namespace System.Text

Type Changed: System.Text.Decoder

Added methods:

public virtual void Convert (System.ReadOnlySpan<byte> bytes, System.Span<char> chars, bool flush, out int bytesUsed, out int charsUsed, out bool completed);
public virtual int GetCharCount (System.ReadOnlySpan<byte> bytes, bool flush);
public virtual int GetChars (System.ReadOnlySpan<byte> bytes, System.Span<char> chars, bool flush);

Type Changed: System.Text.DecoderReplacementFallback

Added interface:

System.Runtime.Serialization.ISerializable

Type Changed: System.Text.Encoder

Added methods:

public virtual void Convert (System.ReadOnlySpan<char> chars, System.Span<byte> bytes, bool flush, out int charsUsed, out int bytesUsed, out bool completed);
public virtual int GetByteCount (System.ReadOnlySpan<char> chars, bool flush);
public virtual int GetBytes (System.ReadOnlySpan<char> chars, System.Span<byte> bytes, bool flush);

Type Changed: System.Text.EncoderReplacementFallback

Added interface:

System.Runtime.Serialization.ISerializable

Type Changed: System.Text.Encoding

Added property:

public virtual System.ReadOnlySpan<byte> Preamble { get; }

Added methods:

public int GetByteCount (string str, int index, int count);
public virtual int GetChars (System.ReadOnlySpan<byte> bytes, System.Span<char> chars);
public string GetString (System.ReadOnlySpan<byte> bytes);

Type Changed: System.Text.StringBuilder

Added methods:

public StringBuilder Append (System.ReadOnlySpan<char> value);
public StringBuilder Append (StringBuilder value);
public StringBuilder Append (StringBuilder value, int startIndex, int count);
public StringBuilder AppendJoin<T> (char separator, System.Collections.Generic.IEnumerable<T> values);
public StringBuilder AppendJoin (char separator, object[] values);
public StringBuilder AppendJoin (char separator, string[] values);
public StringBuilder AppendJoin<T> (string separator, System.Collections.Generic.IEnumerable<T> values);
public StringBuilder AppendJoin (string separator, object[] values);
public StringBuilder AppendJoin (string separator, string[] values);
public void CopyTo (int sourceIndex, System.Span<char> destination, int count);
public bool Equals (System.ReadOnlySpan<char> span);
public StringBuilder Insert (int index, System.ReadOnlySpan<char> value);

Type Changed: System.Text.UTF32Encoding

Added property:

public override System.ReadOnlySpan<byte> Preamble { get; }

Type Changed: System.Text.UTF8Encoding

Added property:

public override System.ReadOnlySpan<byte> Preamble { get; }

Type Changed: System.Text.UnicodeEncoding

Added property:

public override System.ReadOnlySpan<byte> Preamble { get; }

Namespace System.Threading

Type Changed: System.Threading.CancellationTokenRegistration

Added property:

public CancellationToken Token { get; }

Namespace System.Threading.Tasks

Type Changed: System.Threading.Tasks.TaskCanceledException

Added constructor:

public TaskCanceledException (string message, System.Exception innerException, System.Threading.CancellationToken token);

New Namespace System.Buffers.Binary

New Type: System.Buffers.Binary.BinaryPrimitives

public static class BinaryPrimitives {
	// methods
	public static short ReadInt16BigEndian (System.ReadOnlySpan<byte> source);
	public static short ReadInt16LittleEndian (System.ReadOnlySpan<byte> source);
	public static int ReadInt32BigEndian (System.ReadOnlySpan<byte> source);
	public static int ReadInt32LittleEndian (System.ReadOnlySpan<byte> source);
	public static long ReadInt64BigEndian (System.ReadOnlySpan<byte> source);
	public static long ReadInt64LittleEndian (System.ReadOnlySpan<byte> source);
	public static ushort ReadUInt16BigEndian (System.ReadOnlySpan<byte> source);
	public static ushort ReadUInt16LittleEndian (System.ReadOnlySpan<byte> source);
	public static uint ReadUInt32BigEndian (System.ReadOnlySpan<byte> source);
	public static uint ReadUInt32LittleEndian (System.ReadOnlySpan<byte> source);
	public static ulong ReadUInt64BigEndian (System.ReadOnlySpan<byte> source);
	public static ulong ReadUInt64LittleEndian (System.ReadOnlySpan<byte> source);
	public static byte ReverseEndianness (byte value);
	public static short ReverseEndianness (short value);
	public static int ReverseEndianness (int value);
	public static long ReverseEndianness (long value);
	public static sbyte ReverseEndianness (sbyte value);
	public static ushort ReverseEndianness (ushort value);
	public static uint ReverseEndianness (uint value);
	public static ulong ReverseEndianness (ulong value);
	public static bool TryReadInt16BigEndian (System.ReadOnlySpan<byte> source, out short value);
	public static bool TryReadInt16LittleEndian (System.ReadOnlySpan<byte> source, out short value);
	public static bool TryReadInt32BigEndian (System.ReadOnlySpan<byte> source, out int value);
	public static bool TryReadInt32LittleEndian (System.ReadOnlySpan<byte> source, out int value);
	public static bool TryReadInt64BigEndian (System.ReadOnlySpan<byte> source, out long value);
	public static bool TryReadInt64LittleEndian (System.ReadOnlySpan<byte> source, out long value);
	public static bool TryReadUInt16BigEndian (System.ReadOnlySpan<byte> source, out ushort value);
	public static bool TryReadUInt16LittleEndian (System.ReadOnlySpan<byte> source, out ushort value);
	public static bool TryReadUInt32BigEndian (System.ReadOnlySpan<byte> source, out uint value);
	public static bool TryReadUInt32LittleEndian (System.ReadOnlySpan<byte> source, out uint value);
	public static bool TryReadUInt64BigEndian (System.ReadOnlySpan<byte> source, out ulong value);
	public static bool TryReadUInt64LittleEndian (System.ReadOnlySpan<byte> source, out ulong value);
	public static bool TryWriteInt16BigEndian (System.Span<byte> destination, short value);
	public static bool TryWriteInt16LittleEndian (System.Span<byte> destination, short value);
	public static bool TryWriteInt32BigEndian (System.Span<byte> destination, int value);
	public static bool TryWriteInt32LittleEndian (System.Span<byte> destination, int value);
	public static bool TryWriteInt64BigEndian (System.Span<byte> destination, long value);
	public static bool TryWriteInt64LittleEndian (System.Span<byte> destination, long value);
	public static bool TryWriteUInt16BigEndian (System.Span<byte> destination, ushort value);
	public static bool TryWriteUInt16LittleEndian (System.Span<byte> destination, ushort value);
	public static bool TryWriteUInt32BigEndian (System.Span<byte> destination, uint value);
	public static bool TryWriteUInt32LittleEndian (System.Span<byte> destination, uint value);
	public static bool TryWriteUInt64BigEndian (System.Span<byte> destination, ulong value);
	public static bool TryWriteUInt64LittleEndian (System.Span<byte> destination, ulong value);
	public static void WriteInt16BigEndian (System.Span<byte> destination, short value);
	public static void WriteInt16LittleEndian (System.Span<byte> destination, short value);
	public static void WriteInt32BigEndian (System.Span<byte> destination, int value);
	public static void WriteInt32LittleEndian (System.Span<byte> destination, int value);
	public static void WriteInt64BigEndian (System.Span<byte> destination, long value);
	public static void WriteInt64LittleEndian (System.Span<byte> destination, long value);
	public static void WriteUInt16BigEndian (System.Span<byte> destination, ushort value);
	public static void WriteUInt16LittleEndian (System.Span<byte> destination, ushort value);
	public static void WriteUInt32BigEndian (System.Span<byte> destination, uint value);
	public static void WriteUInt32LittleEndian (System.Span<byte> destination, uint value);
	public static void WriteUInt64BigEndian (System.Span<byte> destination, ulong value);
	public static void WriteUInt64LittleEndian (System.Span<byte> destination, ulong value);
}

New Namespace System.Buffers.Text

New Type: System.Buffers.Text.Base64

public static class Base64 {
	// methods
	public static System.Buffers.OperationStatus DecodeFromUtf8 (System.ReadOnlySpan<byte> utf8, System.Span<byte> bytes, out int bytesConsumed, out int bytesWritten, bool isFinalBlock);
	public static System.Buffers.OperationStatus DecodeFromUtf8InPlace (System.Span<byte> buffer, out int bytesWritten);
	public static System.Buffers.OperationStatus EncodeToUtf8 (System.ReadOnlySpan<byte> bytes, System.Span<byte> utf8, out int bytesConsumed, out int bytesWritten, bool isFinalBlock);
	public static System.Buffers.OperationStatus EncodeToUtf8InPlace (System.Span<byte> buffer, int dataLength, out int bytesWritten);
	public static int GetMaxDecodedFromUtf8Length (int length);
	public static int GetMaxEncodedToUtf8Length (int length);
}

New Type: System.Buffers.Text.Utf8Formatter

public static class Utf8Formatter {
	// methods
	public static bool TryFormat (bool value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (byte value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (System.DateTime value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (System.DateTimeOffset value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (System.Decimal value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (double value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (System.Guid value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (short value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (int value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (long value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (sbyte value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (float value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (System.TimeSpan value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (ushort value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (uint value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
	public static bool TryFormat (ulong value, System.Span<byte> destination, out int bytesWritten, System.Buffers.StandardFormat format);
}

New Type: System.Buffers.Text.Utf8Parser

public static class Utf8Parser {
	// methods
	public static bool TryParse (System.ReadOnlySpan<byte> source, out bool value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out byte value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out System.DateTime value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out System.DateTimeOffset value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out System.Decimal value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out double value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out System.Guid value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out short value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out int value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out long value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out sbyte value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out float value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out System.TimeSpan value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out ushort value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out uint value, out int bytesConsumed, char standardFormat);
	public static bool TryParse (System.ReadOnlySpan<byte> source, out ulong value, out int bytesConsumed, char standardFormat);
}

New Namespace System.Numerics

New Type: System.Numerics.Vector

public static class Vector {
	// properties
	public static bool IsHardwareAccelerated { get; }
	// methods
	public static System.Numerics.Vector<T> Abs<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> Add<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> AndNot<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<byte> AsVectorByte<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<double> AsVectorDouble<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<short> AsVectorInt16<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<int> AsVectorInt32<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<long> AsVectorInt64<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<sbyte> AsVectorSByte<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<float> AsVectorSingle<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<ushort> AsVectorUInt16<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<uint> AsVectorUInt32<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<ulong> AsVectorUInt64<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> BitwiseAnd<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> BitwiseOr<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<float> ConditionalSelect (System.Numerics.Vector<int> condition, System.Numerics.Vector<float> left, System.Numerics.Vector<float> right);
	public static System.Numerics.Vector<double> ConditionalSelect (System.Numerics.Vector<long> condition, System.Numerics.Vector<double> left, System.Numerics.Vector<double> right);
	public static System.Numerics.Vector<T> ConditionalSelect<T> (System.Numerics.Vector<T> condition, System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<double> ConvertToDouble (System.Numerics.Vector<long> value);
	public static System.Numerics.Vector<double> ConvertToDouble (System.Numerics.Vector<ulong> value);
	public static System.Numerics.Vector<int> ConvertToInt32 (System.Numerics.Vector<float> value);
	public static System.Numerics.Vector<long> ConvertToInt64 (System.Numerics.Vector<double> value);
	public static System.Numerics.Vector<float> ConvertToSingle (System.Numerics.Vector<int> value);
	public static System.Numerics.Vector<float> ConvertToSingle (System.Numerics.Vector<uint> value);
	public static System.Numerics.Vector<uint> ConvertToUInt32 (System.Numerics.Vector<float> value);
	public static System.Numerics.Vector<ulong> ConvertToUInt64 (System.Numerics.Vector<double> value);
	public static System.Numerics.Vector<T> Divide<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static T Dot<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<long> Equals (System.Numerics.Vector<double> left, System.Numerics.Vector<double> right);
	public static System.Numerics.Vector<int> Equals (System.Numerics.Vector<int> left, System.Numerics.Vector<int> right);
	public static System.Numerics.Vector<long> Equals (System.Numerics.Vector<long> left, System.Numerics.Vector<long> right);
	public static System.Numerics.Vector<int> Equals (System.Numerics.Vector<float> left, System.Numerics.Vector<float> right);
	public static System.Numerics.Vector<T> Equals<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool EqualsAll<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool EqualsAny<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<long> GreaterThan (System.Numerics.Vector<double> left, System.Numerics.Vector<double> right);
	public static System.Numerics.Vector<int> GreaterThan (System.Numerics.Vector<int> left, System.Numerics.Vector<int> right);
	public static System.Numerics.Vector<long> GreaterThan (System.Numerics.Vector<long> left, System.Numerics.Vector<long> right);
	public static System.Numerics.Vector<int> GreaterThan (System.Numerics.Vector<float> left, System.Numerics.Vector<float> right);
	public static System.Numerics.Vector<T> GreaterThan<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool GreaterThanAll<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool GreaterThanAny<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<long> GreaterThanOrEqual (System.Numerics.Vector<double> left, System.Numerics.Vector<double> right);
	public static System.Numerics.Vector<int> GreaterThanOrEqual (System.Numerics.Vector<int> left, System.Numerics.Vector<int> right);
	public static System.Numerics.Vector<long> GreaterThanOrEqual (System.Numerics.Vector<long> left, System.Numerics.Vector<long> right);
	public static System.Numerics.Vector<int> GreaterThanOrEqual (System.Numerics.Vector<float> left, System.Numerics.Vector<float> right);
	public static System.Numerics.Vector<T> GreaterThanOrEqual<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool GreaterThanOrEqualAll<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool GreaterThanOrEqualAny<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<long> LessThan (System.Numerics.Vector<double> left, System.Numerics.Vector<double> right);
	public static System.Numerics.Vector<int> LessThan (System.Numerics.Vector<int> left, System.Numerics.Vector<int> right);
	public static System.Numerics.Vector<long> LessThan (System.Numerics.Vector<long> left, System.Numerics.Vector<long> right);
	public static System.Numerics.Vector<int> LessThan (System.Numerics.Vector<float> left, System.Numerics.Vector<float> right);
	public static System.Numerics.Vector<T> LessThan<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool LessThanAll<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool LessThanAny<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<long> LessThanOrEqual (System.Numerics.Vector<double> left, System.Numerics.Vector<double> right);
	public static System.Numerics.Vector<int> LessThanOrEqual (System.Numerics.Vector<int> left, System.Numerics.Vector<int> right);
	public static System.Numerics.Vector<long> LessThanOrEqual (System.Numerics.Vector<long> left, System.Numerics.Vector<long> right);
	public static System.Numerics.Vector<int> LessThanOrEqual (System.Numerics.Vector<float> left, System.Numerics.Vector<float> right);
	public static System.Numerics.Vector<T> LessThanOrEqual<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool LessThanOrEqualAll<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool LessThanOrEqualAny<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> Max<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> Min<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> Multiply<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> Multiply<T> (System.Numerics.Vector<T> left, T right);
	public static System.Numerics.Vector<T> Multiply<T> (T left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<float> Narrow (System.Numerics.Vector<double> low, System.Numerics.Vector<double> high);
	public static System.Numerics.Vector<sbyte> Narrow (System.Numerics.Vector<short> low, System.Numerics.Vector<short> high);
	public static System.Numerics.Vector<short> Narrow (System.Numerics.Vector<int> low, System.Numerics.Vector<int> high);
	public static System.Numerics.Vector<int> Narrow (System.Numerics.Vector<long> low, System.Numerics.Vector<long> high);
	public static System.Numerics.Vector<byte> Narrow (System.Numerics.Vector<ushort> low, System.Numerics.Vector<ushort> high);
	public static System.Numerics.Vector<ushort> Narrow (System.Numerics.Vector<uint> low, System.Numerics.Vector<uint> high);
	public static System.Numerics.Vector<uint> Narrow (System.Numerics.Vector<ulong> low, System.Numerics.Vector<ulong> high);
	public static System.Numerics.Vector<T> Negate<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> OnesComplement<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> SquareRoot<T> (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> Subtract<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static void Widen (System.Numerics.Vector<byte> source, out System.Numerics.Vector<ushort> low, out System.Numerics.Vector<ushort> high);
	public static void Widen (System.Numerics.Vector<short> source, out System.Numerics.Vector<int> low, out System.Numerics.Vector<int> high);
	public static void Widen (System.Numerics.Vector<int> source, out System.Numerics.Vector<long> low, out System.Numerics.Vector<long> high);
	public static void Widen (System.Numerics.Vector<sbyte> source, out System.Numerics.Vector<short> low, out System.Numerics.Vector<short> high);
	public static void Widen (System.Numerics.Vector<float> source, out System.Numerics.Vector<double> low, out System.Numerics.Vector<double> high);
	public static void Widen (System.Numerics.Vector<ushort> source, out System.Numerics.Vector<uint> low, out System.Numerics.Vector<uint> high);
	public static void Widen (System.Numerics.Vector<uint> source, out System.Numerics.Vector<ulong> low, out System.Numerics.Vector<ulong> high);
	public static System.Numerics.Vector<T> Xor<T> (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
}

New Type: System.Numerics.Vector`1

public struct Vector`1, System.IEquatable<System.Numerics.Vector<T>>, System.IFormattable {
	// constructors
	public Vector`1 (T value);
	public Vector`1 (T[] values);
	public Vector`1 (T[] values, int index);
	// properties
	public static int Count { get; }
	public T Item { get; }
	public static System.Numerics.Vector<T> One { get; }
	public static System.Numerics.Vector<T> Zero { get; }
	// methods
	public void CopyTo (T[] destination);
	public void CopyTo (T[] destination, int startIndex);
	public virtual bool Equals (System.Numerics.Vector<T> other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public string ToString (string format);
	public virtual string ToString (string format, System.IFormatProvider formatProvider);
	public static System.Numerics.Vector<T> op_Addition (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_BitwiseAnd (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_BitwiseOr (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_Division (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static bool op_Equality (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_ExclusiveOr (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<byte> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<double> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<short> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<int> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<long> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<sbyte> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<float> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<ushort> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<uint> op_Explicit (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<ulong> op_Explicit (System.Numerics.Vector<T> value);
	public static bool op_Inequality (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_Multiply (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_Multiply (System.Numerics.Vector<T> value, T factor);
	public static System.Numerics.Vector<T> op_Multiply (T factor, System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> op_OnesComplement (System.Numerics.Vector<T> value);
	public static System.Numerics.Vector<T> op_Subtraction (System.Numerics.Vector<T> left, System.Numerics.Vector<T> right);
	public static System.Numerics.Vector<T> op_UnaryNegation (System.Numerics.Vector<T> value);
}

System.Core.dll

Namespace System.Collections.Generic

Type Changed: System.Collections.Generic.HashSet`1

Added method:

public int EnsureCapacity (int capacity);

Namespace System.IO.Pipes

Type Changed: System.IO.Pipes.AnonymousPipeServerStream

Added method:

protected override void Dispose (bool disposing);

Type Changed: System.IO.Pipes.PipeOptions

Added value:

CurrentUserOnly = 536870912,

Type Changed: System.IO.Pipes.PipeStream

Added methods:

public override int Read (System.Span<byte> buffer);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
public override void Write (System.ReadOnlySpan<byte> buffer);
public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task WriteAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);

Namespace System.Security.Cryptography.X509Certificates

New Type: System.Security.Cryptography.X509Certificates.DSACertificateExtensions

public static class DSACertificateExtensions {
	// methods
	public static X509Certificate2 CopyWithPrivateKey (this X509Certificate2 certificate, System.Security.Cryptography.DSA privateKey);
	public static System.Security.Cryptography.DSA GetDSAPrivateKey (this X509Certificate2 certificate);
	public static System.Security.Cryptography.DSA GetDSAPublicKey (this X509Certificate2 certificate);
}

System.Data.dll

Namespace System.Data.SqlClient

Type Changed: System.Data.SqlClient.SqlConnection

Added property:

public SqlCredential Credential { get; set; }

Added method:

public static void ChangePassword (string connectionString, SqlCredential credential, System.Security.SecureString newSecurePassword);

Type Changed: System.Data.SqlClient.SqlParameterCollection

Added properties:

public override bool IsFixedSize { get; }
public override bool IsReadOnly { get; }

System.dll

Namespace System.ComponentModel

Type Changed: System.ComponentModel.BackgroundWorker

Added method:

protected override void Dispose (bool disposing);

Type Changed: System.ComponentModel.BaseNumberConverter

Modified methods:

-public override bool CanConvertTo (ITypeDescriptorContext context, System.Type t)
+public override bool CanConvertTo (ITypeDescriptorContext context, System.Type destinationType)

Type Changed: System.ComponentModel.DefaultValueAttribute

Added constructors:

public DefaultValueAttribute (sbyte value);
public DefaultValueAttribute (ushort value);
public DefaultValueAttribute (uint value);
public DefaultValueAttribute (ulong value);

Namespace System.IO

Type Changed: System.IO.FileSystemWatcher

Added property:

public System.Collections.ObjectModel.Collection<string> Filters { get; }

Namespace System.IO.Compression

Type Changed: System.IO.Compression.GZipStream

Added methods:

public override int Read (System.Span<byte> buffer);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override void Write (System.ReadOnlySpan<byte> buffer);
public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken);

Namespace System.Net.Mime

Type Changed: System.Net.Mime.MediaTypeNames

Type Changed: System.Net.Mime.MediaTypeNames.Application

Added fields:

public static const string Json = "application/json";
public static const string Xml = "application/xml";

Namespace System.Net.Security

Type Changed: System.Net.Security.SslStream

Added methods:

public virtual void AuthenticateAsClient (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation);
public System.Threading.Tasks.Task AuthenticateAsClientAsync (SslClientAuthenticationOptions sslClientAuthenticationOptions, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation);
public virtual void AuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation);
public System.Threading.Tasks.Task AuthenticateAsServerAsync (SslServerAuthenticationOptions sslServerAuthenticationOptions, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation);
public virtual System.IAsyncResult BeginAuthenticateAsClient (string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState);
public virtual System.IAsyncResult BeginAuthenticateAsServer (System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, bool checkCertificateRevocation, System.AsyncCallback asyncCallback, object asyncState);

New Type: System.Net.Security.ServerCertificateSelectionCallback

public sealed delegate ServerCertificateSelectionCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public ServerCertificateSelectionCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (object sender, string hostName, System.AsyncCallback callback, object object);
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate EndInvoke (System.IAsyncResult result);
	public virtual System.Security.Cryptography.X509Certificates.X509Certificate Invoke (object sender, string hostName);
}

New Type: System.Net.Security.SslApplicationProtocol

public struct SslApplicationProtocol, System.IEquatable<SslApplicationProtocol> {
	// constructors
	public SslApplicationProtocol (byte[] protocol);
	public SslApplicationProtocol (string protocol);
	// fields
	public static SslApplicationProtocol Http11;
	public static SslApplicationProtocol Http2;
	// properties
	public System.ReadOnlyMemory<byte> Protocol { get; }
	// methods
	public virtual bool Equals (SslApplicationProtocol other);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public override string ToString ();
	public static bool op_Equality (SslApplicationProtocol left, SslApplicationProtocol right);
	public static bool op_Inequality (SslApplicationProtocol left, SslApplicationProtocol right);
}

New Type: System.Net.Security.SslClientAuthenticationOptions

public class SslClientAuthenticationOptions {
	// constructors
	public SslClientAuthenticationOptions ();
	// properties
	public bool AllowRenegotiation { get; set; }
	public System.Collections.Generic.List<SslApplicationProtocol> ApplicationProtocols { get; set; }
	public System.Security.Cryptography.X509Certificates.X509RevocationMode CertificateRevocationCheckMode { get; set; }
	public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get; set; }
	public System.Security.Authentication.SslProtocols EnabledSslProtocols { get; set; }
	public EncryptionPolicy EncryptionPolicy { get; set; }
	public LocalCertificateSelectionCallback LocalCertificateSelectionCallback { get; set; }
	public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; }
	public string TargetHost { get; set; }
}

New Type: System.Net.Security.SslServerAuthenticationOptions

public class SslServerAuthenticationOptions {
	// constructors
	public SslServerAuthenticationOptions ();
	// properties
	public bool AllowRenegotiation { get; set; }
	public System.Collections.Generic.List<SslApplicationProtocol> ApplicationProtocols { get; set; }
	public System.Security.Cryptography.X509Certificates.X509RevocationMode CertificateRevocationCheckMode { get; set; }
	public bool ClientCertificateRequired { get; set; }
	public System.Security.Authentication.SslProtocols EnabledSslProtocols { get; set; }
	public EncryptionPolicy EncryptionPolicy { get; set; }
	public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; }
	public System.Security.Cryptography.X509Certificates.X509Certificate ServerCertificate { get; set; }
	public ServerCertificateSelectionCallback ServerCertificateSelectionCallback { get; set; }
}

Namespace System.Net.Sockets

Type Changed: System.Net.Sockets.Socket

Added methods:

public int Receive (System.Span<byte> buffer, SocketFlags socketFlags);
public int Send (System.ReadOnlySpan<byte> buffer, SocketFlags socketFlags);

Namespace System.Net.WebSockets

Type Changed: System.Net.WebSockets.ClientWebSocket

Added methods:

public override System.Threading.Tasks.ValueTask<ValueWebSocketReceiveResult> ReceiveAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.ValueTask SendAsync (System.ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Net.WebSockets.ClientWebSocketOptions

Added property:

public System.Net.Security.RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; }

Type Changed: System.Net.WebSockets.WebSocket

Added methods:

public static WebSocket CreateFromStream (System.IO.Stream stream, bool isServer, string subProtocol, System.TimeSpan keepAliveInterval);
public virtual System.Threading.Tasks.ValueTask<ValueWebSocketReceiveResult> ReceiveAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.ValueTask SendAsync (System.ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken);

New Namespace System.IO.Enumeration

New Type: System.IO.Enumeration.FileSystemName

public static class FileSystemName {
	// methods
	public static bool MatchesSimpleExpression (System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase);
	public static bool MatchesWin32Expression (System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase);
	public static string TranslateWin32Expression (string expression);
}

System.Numerics.dll

Namespace System.Numerics

Type Changed: System.Numerics.BigInteger

Added constructor:

public BigInteger (System.ReadOnlySpan<byte> value, bool isUnsigned, bool isBigEndian);

Added methods:

public static BigInteger Parse (System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider);
public bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, System.IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> value, out BigInteger result);
public static bool TryParse (System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out BigInteger result);
public bool TryWriteBytes (System.Span<byte> destination, out int bytesWritten, bool isUnsigned, bool isBigEndian);

System.Xml.Linq.dll

Namespace System.Xml.Linq

Type Changed: System.Xml.Linq.XCData

Added method:

public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XComment

Added method:

public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XDocument

Added methods:

public static System.Threading.Tasks.Task<XDocument> LoadAsync (System.IO.Stream stream, LoadOptions options, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<XDocument> LoadAsync (System.IO.TextReader textReader, LoadOptions options, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<XDocument> LoadAsync (System.Xml.XmlReader reader, LoadOptions options, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task SaveAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task SaveAsync (System.IO.Stream stream, SaveOptions options, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task SaveAsync (System.IO.TextWriter textWriter, SaveOptions options, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XDocumentType

Added method:

public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XElement

Added methods:

public static System.Threading.Tasks.Task<XElement> LoadAsync (System.IO.Stream stream, LoadOptions options, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<XElement> LoadAsync (System.IO.TextReader textReader, LoadOptions options, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<XElement> LoadAsync (System.Xml.XmlReader reader, LoadOptions options, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task SaveAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task SaveAsync (System.IO.Stream stream, SaveOptions options, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task SaveAsync (System.IO.TextWriter textWriter, SaveOptions options, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XNode

Added methods:

public static System.Threading.Tasks.Task<XNode> ReadFromAsync (System.Xml.XmlReader reader, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XProcessingInstruction

Added method:

public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Xml.Linq.XText

Added method:

public override System.Threading.Tasks.Task WriteToAsync (System.Xml.XmlWriter writer, System.Threading.CancellationToken cancellationToken);

Xamarin.iOS.dll

Namespace AudioUnit

Type Changed: AudioUnit.AudioUnit

Added methods:

public double GetLatency ();
public AudioUnitStatus SetLatency (double latency);

Namespace Compression

Type Changed: Compression.CompressionStream

Added methods:

public override int Read (System.Span<byte> destination);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> destination, System.Threading.CancellationToken cancellationToken);
public override void Write (System.ReadOnlySpan<byte> source);
public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken);

Namespace CoreFoundation

Type Changed: CoreFoundation.DispatchObject

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~DispatchObject ();

Obsoleted methods:

 [Obsolete ("Use 'GetCheckedHandle' instead.")]
 protected void Check ();

Added methods:

public void Activate ();
protected override void Release ();
protected override void Retain ();

Type Changed: CoreFoundation.DispatchQueue

Added constructor:

public DispatchQueue (string label, DispatchQueue.Attributes attributes, DispatchQueue target);

Added property:

public DispatchQualityOfService QualityOfService { get; }

Added methods:

public void DispatchBarrierSync (System.Action action);
public DispatchQualityOfService GetQualityOfService (out int relative_priority);
public object GetSpecific (IntPtr key);
public void SetSpecific (IntPtr key, object context);

New Type: CoreFoundation.DispatchQualityOfService

[Serializable]
public enum DispatchQualityOfService {
	Background = 9,
	Default = 21,
	Unspecified = 0,
	UserInitiated = 25,
	UserInteractive = 33,
	Utility = 17,
}

Namespace CoreGraphics

Type Changed: CoreGraphics.CGAffineTransform

Added methods:

public void Rotate (nfloat angle, MatrixOrder order);
public void Scale (nfloat sx, nfloat sy, MatrixOrder order);
public void Translate (nfloat tx, nfloat ty, MatrixOrder order);

New Type: CoreGraphics.MatrixOrder

[Serializable]
public enum MatrixOrder {
	Append = 1,
	Prepend = 0,
}

Namespace CoreMedia

Type Changed: CoreMedia.CMAttachmentBearer

Added method:

public static T GetAttachment<T> (this ICMAttachmentBearer target, CMSampleBufferAttachmentKey key, out CMAttachmentMode attachmentModeOut);

New Type: CoreMedia.CMSampleBufferAttachmentKey

[Serializable]
public enum CMSampleBufferAttachmentKey {
	CameraIntrinsicMatrix = 31,
	DependsOnOthers = 4,
	DisplayEmptyMediaImmediately = 24,
	DisplayImmediately = 6,
	DoNotDisplay = 7,
	DrainAfterDecoding = 13,
	DroppedFrameReason = 29,
	DroppedFrameReasonInfo = 32,
	EarlierDisplayTimesAllowed = 5,
	EmptyMedia = 22,
	EndsPreviousSampleDuration = 25,
	FillDiscontinuitiesWithSilence = 21,
	ForceKeyFrame = 33,
	GradualDecoderRefresh = 28,
	HasRedundantCoding = 2,
	HevcStepwiseTemporalSubLayerAccess = 10,
	HevcSyncSampleNalUnitType = 11,
	HevcTemporalLevelInfo = 8,
	HevcTemporalSubLayerAccess = 9,
	IsDependedOnByOthers = 3,
	NotSync = 0,
	PartialSync = 1,
	PermanentEmptyMedia = 23,
	PostNotificationWhenConsumed = 14,
	ResetDecoderBeforeDecoding = 12,
	ResumeOutput = 15,
	Reverse = 20,
	SampleReferenceByteOffset = 27,
	SampleReferenceUrl = 26,
	SpeedMultiplier = 19,
	StillImageLensStabilizationInfo = 30,
	TransitionId = 16,
	TrimDurationAtEnd = 18,
	TrimDurationAtStart = 17,
}

New Type: CoreMedia.CMSampleBufferAttachmentKeyExtensions

public static class CMSampleBufferAttachmentKeyExtensions {
	// methods
	public static Foundation.NSString GetConstant (this CMSampleBufferAttachmentKey self);
	public static CMSampleBufferAttachmentKey GetValue (Foundation.NSString constant);
}

Namespace Foundation

Type Changed: Foundation.NSMutableDictionary

Added method:

public virtual void AddEntries (NSDictionary other);

Type Changed: Foundation.NSString

Added methods:

public virtual NSString[] SeparateComponents (NSCharacterSet separator);
public virtual NSString[] SeparateComponents (NSString separator);

Type Changed: Foundation.ProtocolMemberAttribute

Added property:

public System.Type ReturnTypeDelegateProxy { get; set; }

Namespace Metal

Type Changed: Metal.MTLQuadTessellationFactorsHalf

Modified fields:

-[MarshalAs]
+
 public ushort[] EdgeTessellationFactor;
-[MarshalAs]
+
 public ushort[] InsideTessellationFactor;

Type Changed: Metal.MTLTriangleTessellationFactorsHalf

Modified fields:

-[MarshalAs]
+
 public ushort[] EdgeTessellationFactor;

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string HealthKitUILibrary = "/System/Library/Frameworks/HealthKitUI.framework/HealthKit";
+public const string HealthKitUILibrary = "/System/Library/Frameworks/HealthKitUI.framework/HealthKitUI";
-public const string NaturalLanguageLibrary = "/System/Library/Frameworks/Frameworks/NaturalLanguage.framework/NaturalLanguage";
+public const string NaturalLanguageLibrary = "/System/Library/Frameworks/NaturalLanguage.framework/NaturalLanguage";
-public const string SpeechLibrary = "/System/Library/Frameworks/Speech.framework/";
+public const string SpeechLibrary = "/System/Library/Frameworks/Speech.framework/Speech";
-public const string Version = "12.4.0";
+public const string Version = "12.8.0";

Added fields:

public static const string libcompressionLibrary = "/usr/lib/libcompression.dylib";
public static const string libdispatchLibrary = "/usr/lib/system/libdispatch.dylib";

Type Changed: ObjCRuntime.Runtime

Added method:

public static INativeObject GetINativeObject (IntPtr ptr, bool owns, System.Type target_type);

Namespace SceneKit

Type Changed: SceneKit.SCNAction

Obsoleted properties:

 [Obsolete ("Use 'TimingFunction2' property.")]
 public virtual System.Action<float> TimingFunction { get; set; }

Added property:

public virtual System.Func<System.Single,System.Single> TimingFunction2 { get; set; }

Namespace UIKit

Type Changed: UIKit.UIGestureRecognizer

Added method:

public System.Collections.Generic.IEnumerable<UIGestureRecognizer.Token> GetTargets ();