Aracılığıyla paylaş


Varsayılan Equals() ve GetHashCode() ile işaretlenmiş türler için throw InlineArrayAttribute

ile Equals(Object) işaretlenen türlerde ve GetHashCode() için varsayılan davranış InlineArrayAttribute şimdi bir NotSupportedExceptionoluşturmaktır. Kitaplık yazarlarının oluşturmaması beklenen bu iki yöntemi geçersiz kılması gerekir.

Önceki davranış

Daha önce, varsayılan uygulamalar yalnızca eşitliği veya karma kodu hesaplarken yer tutucu ref alanını kullanıyordu.

Yeni davranış

.NET 9'dan başlayarak, ve NotSupportedException türüne uygulandığında Equals(Object) için varsayılan uygulamalardan GetHashCode()InlineArrayAttribute her zaman bir oluşturulur.

Sürüm kullanıma sunulmuştur

.NET 9 Önizleme 6

Hataya neden olan değişikliğin türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Geçerli davranış hem eşitliği belirleme hem de karma kodu hesaplama için yanlıştır ve kullanıcılar bu işlevleri çağırırken yanlış bir doğruluk duygusuna neden oluyor.

Kitaplık yazarları ile Equals(Object)işaretlenmiş tüm türlerde hem GetHashCode() hem de InlineArrayAttribute uygulamalıdır.

Etkilenen API’ler