Xamarin.TVOS SDK API diff: 11.14.0 vs 11.16.0

mscorlib.dll

Namespace System

Type Changed: System.BitConverter

Added method:

public static int ToInt32 (System.ReadOnlySpan<byte> value);

Type Changed: System.Int32

Added method:

public bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);

Type Changed: System.String

Added constructor:

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

Removed method:

public static string Concat (object arg0, object arg1, object arg2, object arg3);

Added methods:

public bool Contains (char value);
public bool Contains (char value, StringComparison comparisonType);
public bool Contains (string value, StringComparison comparisonType);
public bool EndsWith (char value);
public int GetHashCode (StringComparison comparisonType);
public int IndexOf (char value, StringComparison comparisonType);
public static string Join<T> (char separator, System.Collections.Generic.IEnumerable<T> values);
public static string Join (char separator, object[] values);
public static string Join (char separator, string[] value);
public static string Join (char separator, string[] value, int startIndex, int count);
public string Replace (string oldValue, string newValue, StringComparison comparisonType);
public string Replace (string oldValue, string newValue, bool ignoreCase, Globalization.CultureInfo culture);
public string[] Split (char separator, StringSplitOptions options);
public string[] Split (string separator, StringSplitOptions options);
public string[] Split (char separator, int count, StringSplitOptions options);
public string[] Split (string separator, int count, StringSplitOptions options);
public bool StartsWith (char value);
public string Trim (char trimChar);
public string TrimEnd ();
public string TrimEnd (char trimChar);
public string TrimStart ();
public string TrimStart (char trimChar);
public static System.ReadOnlySpan<char> op_Implicit (string value);

Type Changed: System.StringComparer

Added method:

public static StringComparer FromComparison (StringComparison comparisonType);

New Type: System.MemoryExtensions

public static class MemoryExtensions {
	// methods
	public static System.ReadOnlySpan<byte> AsBytes<T> (this System.ReadOnlySpan<T> source);
	public static System.Span<byte> AsBytes<T> (this System.Span<T> source);
	public static System.ReadOnlyMemory<T> AsReadOnlyMemory<T> (this System.Memory<T> memory);
	public static System.ReadOnlyMemory<char> AsReadOnlyMemory (this string text);
	public static System.ReadOnlyMemory<char> AsReadOnlyMemory (this string text, int start);
	public static System.ReadOnlyMemory<char> AsReadOnlyMemory (this string text, int start, int length);
	public static System.ReadOnlySpan<T> AsReadOnlySpan<T> (this System.ArraySegment<T> arraySegment);
	public static System.ReadOnlySpan<T> AsReadOnlySpan<T> (this System.Span<T> span);
	public static System.ReadOnlySpan<char> AsReadOnlySpan (this string text);
	public static System.ReadOnlySpan<T> AsReadOnlySpan<T> (this T[] array);
	public static System.ReadOnlySpan<char> AsReadOnlySpan (this string text, int start);
	public static System.ReadOnlySpan<char> AsReadOnlySpan (this string text, int start, int length);
	public static System.Span<T> AsSpan<T> (this System.ArraySegment<T> arraySegment);
	public static System.ReadOnlySpan<char> AsSpan (this string text);
	public static System.Span<T> AsSpan<T> (this T[] array);
	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 void CopyTo<T> (this T[] array, System.Memory<T> destination);
	public static void CopyTo<T> (this T[] array, 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 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 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 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 System.ReadOnlySpan<TTo> NonPortableCast<TFrom, TTo> (this System.ReadOnlySpan<TFrom> source);
	public static System.Span<TTo> NonPortableCast<TFrom, TTo> (this System.Span<TFrom> source);
	public static bool Overlaps<T> (this System.ReadOnlySpan<T> first, System.ReadOnlySpan<T> second);
	public static bool Overlaps<T> (this System.Span<T> first, System.ReadOnlySpan<T> second);
	public static bool Overlaps<T> (this System.ReadOnlySpan<T> first, System.ReadOnlySpan<T> second, out int elementOffset);
	public static bool Overlaps<T> (this System.Span<T> first, System.ReadOnlySpan<T> second, out int elementOffset);
	public static void Reverse<T> (this System.Span<T> span);
	public static int SequenceCompareTo<T> (this System.ReadOnlySpan<T> first, System.ReadOnlySpan<T> second);
	public static int SequenceCompareTo<T> (this System.Span<T> first, System.ReadOnlySpan<T> second);
	public static bool SequenceEqual<T> (this System.ReadOnlySpan<T> first, System.ReadOnlySpan<T> second);
	public static bool SequenceEqual<T> (this System.Span<T> first, System.ReadOnlySpan<T> second);
	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 TryGetString (this System.ReadOnlyMemory<char> readOnlyMemory, out string text, out int start, out int length);
}

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 Retain (bool pin);
	public System.Memory<T> Slice (int start);
	public System.Memory<T> Slice (int start, int length);
	public T[] ToArray ();
	public bool TryCopyTo (System.Memory<T> destination);
	public bool TryGetArray (out System.ArraySegment<T> arraySegment);
	public static System.Memory<T> op_Implicit (System.ArraySegment<T> arraySegment);
	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 Retain (bool pin);
	public System.ReadOnlyMemory<T> Slice (int start);
	public System.ReadOnlyMemory<T> Slice (int start, int length);
	public T[] ToArray ();
	public bool TryCopyTo (System.Memory<T> destination);
	public static System.ReadOnlyMemory<T> op_Implicit (System.ArraySegment<T> arraySegment);
	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);
	public static System.ReadOnlySpan<T> DangerousCreate (object obj, ref T objectData, int length);

	[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 System.ReadOnlySpan<T> Slice (int start);
	public System.ReadOnlySpan<T> Slice (int start, int length);
	public T[] ToArray ();
	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> arraySegment);
	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.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);
	public static System.Span<T> DangerousCreate (object obj, ref T objectData, int length);

	[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 System.Span<T> Slice (int start);
	public System.Span<T> Slice (int start, int length);
	public T[] ToArray ();
	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> arraySegment);
	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.OwnedMemory`1

public abstract class OwnedMemory`1 : IRetainable, System.IDisposable {
	// constructors
	protected OwnedMemory`1 ();
	// properties
	public virtual bool IsDisposed { get; }
	protected virtual bool IsRetained { get; }
	public virtual int Length { get; }
	public System.Memory<T> Memory { get; }
	public virtual System.Span<T> Span { get; }
	// methods
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	public virtual MemoryHandle Pin (int offset);
	public virtual bool Release ();
	public virtual void Retain ();
	protected virtual bool TryGetArray (out System.ArraySegment<T> arraySegment);
}

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

Type Changed: System.Collections.BitArray

Added methods:

public BitArray LeftShift (int count);
public BitArray RightShift (int count);

Namespace System.Collections.ObjectModel

Type Changed: System.Collections.ObjectModel.KeyedCollection`2

Added method:

public bool TryGetValue (TKey key, out TItem item);

Namespace System.Globalization

New Type: System.Globalization.GlobalizationExtensions

public static class GlobalizationExtensions {
	// methods
	public static System.StringComparer GetStringComparer (this CompareInfo compareInfo, CompareOptions options);
}

Namespace System.IO

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.Task WriteAsync (System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken);

Namespace System.Reflection

Type Changed: System.Reflection.BindingFlags

Added value:

DoNotWrapExceptions = 33554432,

Namespace System.Reflection.Emit

New Type: System.Reflection.Emit.DynamicMethod

public abstract class DynamicMethod : System.Reflection.MethodInfo, System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo, System.Runtime.InteropServices._MethodBase {
	// constructors
	public DynamicMethod (string name, System.Type returnType, System.Type[] parameterTypes);
	public DynamicMethod (string name, System.Type returnType, System.Type[] parameterTypes, bool restrictedSkipVisibility);
	public DynamicMethod (string name, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m);
	public DynamicMethod (string name, System.Type returnType, System.Type[] parameterTypes, System.Type owner);
	public DynamicMethod (string name, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m, bool skipVisibility);
	public DynamicMethod (string name, System.Type returnType, System.Type[] parameterTypes, System.Type owner, bool skipVisibility);
	public DynamicMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Reflection.Module m, bool skipVisibility);
	public DynamicMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Type owner, bool skipVisibility);
	// properties
	public override System.Reflection.MethodAttributes Attributes { get; }
	public override System.Reflection.CallingConventions CallingConvention { get; }
	public override System.Type DeclaringType { get; }
	public bool InitLocals { get; set; }
	public override System.Reflection.MethodImplAttributes MethodImplementationFlags { get; }
	public override string Name { get; }
	public override System.Reflection.ParameterInfo ReturnParameter { get; }
	public override System.Type ReturnType { get; }
	// methods
	public ILGenerator GetILGenerator ();
	public ILGenerator GetILGenerator (int streamSize);
	public override System.Reflection.ParameterInfo[] GetParameters ();
}

Namespace System.Runtime

New Type: System.Runtime.ProfileOptimization

public static class ProfileOptimization {
	// methods
	public static void SetProfileRoot (string directoryPath);
	public static void StartProfile (string profile);
}

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.ConditionalWeakTable`2

Added interfaces:

System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>
System.Collections.IEnumerable

Namespace System.Runtime.InteropServices

New Type: System.Runtime.InteropServices.MemoryMarshal

public static class MemoryMarshal {
	// methods
	public static System.Memory<T> AsMemory<T> (System.ReadOnlyMemory<T> readOnlyMemory);
	public static  T GetReference<T> (System.ReadOnlySpan<T> span);
	public static  T GetReference<T> (System.Span<T> span);
	public static bool TryGetArray<T> (System.ReadOnlyMemory<T> readOnlyMemory, out System.ArraySegment<T> arraySegment);
}

Namespace System.Text

Type Changed: System.Text.Encoding

Added method:

public string GetString (System.ReadOnlySpan<byte> bytes);

Namespace System.Threading

Type Changed: System.Threading.LazyInitializer

Added method:

public static T EnsureInitialized<T> (ref T target, ref object syncLock, System.Func<T> valueFactory);

New Type: System.Threading.Lock

public class Lock {
	// constructors
	public Lock ();
	// methods
	public void Acquire ();
	public void Release ();
}

New Type: System.Threading.LockHolder

public struct LockHolder, System.IDisposable {
	// methods
	public virtual void Dispose ();
	public static LockHolder Hold (Lock l);
}

Namespace System.Threading.Tasks

Type Changed: System.Threading.Tasks.Task

Added methods:

public static System.Threading.Tasks.Task<TResult> CreateUnwrapPromise<TResult> (Task outerTask, bool lookForOce);
public virtual void MarkAborted (System.Threading.ThreadAbortException e);

New Namespace System.Buffers.Binary

New Type: System.Buffers.Binary.BinaryPrimitives

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

System.Core.dll

Namespace System.Security.Cryptography

New Type: System.Security.Cryptography.IncrementalHash

public sealed class IncrementalHash : System.IDisposable {
	// properties
	public HashAlgorithmName AlgorithmName { get; }
	// methods
	public void AppendData (byte[] data);
	public void AppendData (byte[] data, int offset, int count);
	public static IncrementalHash CreateHMAC (HashAlgorithmName hashAlgorithm, byte[] key);
	public static IncrementalHash CreateHash (HashAlgorithmName hashAlgorithm);
	public virtual void Dispose ();
	public byte[] GetHashAndReset ();
}

System.dll

Namespace System

New Type: System.StringNormalizationExtensions

public static class StringNormalizationExtensions {
	// methods
	public static bool IsNormalized (this string strInput);
	public static bool IsNormalized (this string strInput, Text.NormalizationForm normalizationForm);
	public static string Normalize (this string strInput);
	public static string Normalize (this string strInput, Text.NormalizationForm normalizationForm);
}

Namespace System.Diagnostics

New Type: System.Diagnostics.StackFrameExtensions

public static class StackFrameExtensions {
	// methods
	public static IntPtr GetNativeIP (this StackFrame stackFrame);
	public static IntPtr GetNativeImageBase (this StackFrame stackFrame);
	public static bool HasILOffset (this StackFrame stackFrame);
	public static bool HasMethod (this StackFrame stackFrame);
	public static bool HasNativeImage (this StackFrame stackFrame);
	public static bool HasSource (this StackFrame stackFrame);
}

Namespace System.IO.Compression

Type Changed: System.IO.Compression.GZipStream

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.Task WriteAsync (System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken);

Namespace System.Net

Type Changed: System.Net.FtpWebRequest

Added properties:

public override Cache.RequestCachePolicy CachePolicy { get; set; }
public static Cache.RequestCachePolicy DefaultCachePolicy { get; set; }

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.Task SendAsync (System.ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Net.WebSockets.WebSocket

Added methods:

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

Namespace System.Text.RegularExpressions

Type Changed: System.Text.RegularExpressions.CaptureCollection

Added interfaces:

System.Collections.Generic.ICollection<Capture>
System.Collections.Generic.IEnumerable<Capture>
System.Collections.Generic.IList<Capture>
System.Collections.Generic.IReadOnlyCollection<Capture>
System.Collections.Generic.IReadOnlyList<Capture>
System.Collections.IList

Added method:

public virtual void CopyTo (Capture[] array, int arrayIndex);

Type Changed: System.Text.RegularExpressions.GroupCollection

Added interfaces:

System.Collections.Generic.ICollection<Group>
System.Collections.Generic.IEnumerable<Group>
System.Collections.Generic.IList<Group>
System.Collections.Generic.IReadOnlyCollection<Group>
System.Collections.Generic.IReadOnlyList<Group>
System.Collections.IList

Added method:

public virtual void CopyTo (Group[] array, int arrayIndex);

Type Changed: System.Text.RegularExpressions.MatchCollection

Added interfaces:

System.Collections.Generic.ICollection<Match>
System.Collections.Generic.IEnumerable<Match>
System.Collections.Generic.IList<Match>
System.Collections.Generic.IReadOnlyCollection<Match>
System.Collections.Generic.IReadOnlyList<Match>
System.Collections.IList

Added method:

public virtual void CopyTo (Match[] array, int arrayIndex);

Type Changed: System.Text.RegularExpressions.Regex

Modified fields:

 ---[NonSerialized]
 ---public readonly System.TimeSpan InfiniteMatchTimeout;

Modified methods:

-protected bool UseOptionR ()
+protected bool UseOptionR ()

New Namespace System.Security

New Type: System.Security.SecureStringMarshal

public static class SecureStringMarshal {
	// methods
	public static IntPtr SecureStringToCoTaskMemAnsi (SecureString s);
	public static IntPtr SecureStringToCoTaskMemUnicode (SecureString s);
	public static IntPtr SecureStringToGlobalAllocAnsi (SecureString s);
	public static IntPtr SecureStringToGlobalAllocUnicode (SecureString s);
}

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.Runtime.Serialization.dll

Namespace System.Runtime.Serialization

New Type: System.Runtime.Serialization.DataContractSerializerExtensions

public static class DataContractSerializerExtensions {
	// methods
	public static ISerializationSurrogateProvider GetSerializationSurrogateProvider (this DataContractSerializer serializer);
	public static void SetSerializationSurrogateProvider (this DataContractSerializer serializer, ISerializationSurrogateProvider provider);
}

New Type: System.Runtime.Serialization.ISerializationSurrogateProvider

public interface ISerializationSurrogateProvider {
	// methods
	public virtual object GetDeserializedObject (object obj, System.Type targetType);
	public virtual object GetObjectToSerialize (object obj, System.Type targetType);
	public virtual System.Type GetSurrogateType (System.Type type);
}

System.Xml.Linq.dll

Namespace System.Xml.XPath

New Type: System.Xml.XPath.XDocumentExtensions

public static class XDocumentExtensions {
	// methods
	public static IXPathNavigable ToXPathNavigable (this System.Xml.Linq.XNode node);
}

Xamarin.TVOS.dll

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.Task WriteAsync (System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken);

Namespace Foundation

Type Changed: Foundation.NSErrorException

Added property:

public override string Message { get; }

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "11.14.0";
+public const string Version = "11.16.0";

Type Changed: ObjCRuntime.Runtime

Added method:

public static void ReleaseBlockOnMainThread (IntPtr block);