public static int GetHashCode <T>(T?value) { var pValue = Unsafe.AsPointer(ref value); var size = Unsafe.SizeOf <T>(); return(BinaryEqualityComparer.GetHashCode(pValue, size)); }
public static int GetBinaryHashCode <T>(this T[, , ]?array) where T : unmanaged { if (array is null) { return(0); } fixed(T *pArray = array) { var size = sizeof(T) * array.Length; return(BinaryEqualityComparer.GetHashCode(pArray, size)); } }
public static int GetBinaryHashCode <T>(this T value) where T : unmanaged { return(BinaryEqualityComparer.GetHashCode(&value, sizeof(T))); }