В C# как правильно проверить, действительно ли значение типа значения действительно по умолчанию? Другими словами: все ли элементы равны нулю, как определено языком?
Использование x == default
требует, чтобы структура определяла средство сравнения на равенство, которое может быть реализовано как угодно. Использование EqualityComparer<T>.Default.Equals(x, default)
также позволяет структуре переопределять проверку по умолчанию, реализуя IEquatable<T>
.
Есть ли лучший способ, чем использовать блок unsafe
и выполнять проверку равенства байтов за байтом?