Aracılığıyla paylaş


FilePatternMatch.Stem null atanamaz olarak değiştirildi

Değerini FilePatternMatch.Stem aldığı özellik null atanabilir olduğundan PatternTestResult.Stem özelliğine daha önce null atanabilir olarak ek açıklama ekleniyordu. PatternTestResult Sonuç başarılı olmazsa gerçekten null olabilir ancak FilePatternMatch hiçbir zaman bunun nedeni yalnızca başarılı olduğunda PatternTestResult oluşturulabilmesidir.

Null atanabilirliği doğru bir şekilde yansıtmak için, [MemberNotNullWhen()] özniteliği özelliğine PatternTestResult.Stem uygulanarak derleyiciye başarılı olursa null olmayacağı belirtilir. Ayrıca, stem oluşturucuya FilePatternMatch geçirilen bağımsız değişken artık null atanamaz ve ArgumentNullException null stem geçirilirse bir oluşturulur.

Sürüm kullanıma sunulmuştur

.NET 10

Önceki davranış

Daha önce, FilePatternMatch oluşturucu, parametresi için herhangi bir derleme veya çalışma zamanı uyarısı ya da hatası olmadan nullstem kabul ediyordu.

// Allowed in previous versions.
var match = new FilePatternMatch("path/to/file.txt", null);

Özelliğine FilePatternMatch.Stem de null atanabilir olarak açıklama eklendi.

Yeni davranış

.NET 10'dan başlayarak, oluşturucudaki null bağımsız değişkene stem bir FilePatternMatch veya büyük olasılıkla null değer geçirmek derleme zamanı uyarısı verir. Ve null geçirilirse, bir çalışma zamanı ArgumentNullException fırlatılır.

FilePatternMatch.Stem Özelliğine artık değerin null (null IsSuccessfultrue) olmadığını belirtmek için ek açıklama eklenir.

// Generates compile-time warning.
var match = new FilePatternMatch("path/to/file.txt", null);

Kesinti yaratan değişiklik türü

Bu değişiklik kaynak uyumluluğunu etkileyebilir ve davranışsal bir değişikliktir.

Değişiklik nedeni

Önceki null atanabilirlik ek açıklamaları yanlıştı ve bağımsız değişken için null bir stem değer beklenmeyendi ancak uygun şekilde korunmadı. Bu değişiklik, API'nin beklenen davranışını yansıtır ve öngörülemeyen davranışlara karşı koruma sağlarken, kullanımla ilgili tasarım zamanı kılavuzu da oluşturur.

Eğer stem bağımsız değişkeni için muhtemelen null bir değer geçirilmişse, kullanımı gözden geçirin ve çağrı yerini güncelleyerek stem'in null olarak geçirilmemesini sağlayın.

Özelliğini kullanırken FilePatternMatch.Stem nullability uyarı gizlemeleri uyguladıysanız, bu gizlemeleri kaldırabilirsiniz.

Etkilenen API'ler