CA2207: Değer türü statik alanları satır içi başlatın
Özellik | Değer |
---|---|
Kural Kimliği | CA2207 |
Başlık | Değer türü statik alanları satır içi başlatın |
Kategori | Kullanım |
Hataya neden olan veya bozulmayan düzeltme | Hataya neden olmayan |
.NET 9'da varsayılan olarak etkin | Hayır |
Neden
Değer türü açık bir statik oluşturucu bildirir.
Kural açıklaması
Bir değer türü bildirildiğinde, tüm değer türü alanlarının sıfır ve tüm başvuru türü alanlarının (Nothing
Visual Basic'te) olarak ayarlandığı null
varsayılan bir başlatmadan geçer. Açık statik oluşturucunun yalnızca bir örnek oluşturucusu veya türün statik üyesi çağrılmadan önce çalıştırılması garanti edilir. Bu nedenle, tür bir örnek oluşturucu çağrılmadan oluşturulursa, statik oluşturucunun çalışması garanti değildir.
Tüm statik veriler satır içinde başlatılırsa ve açık statik oluşturucu bildirilmemişse, C# ve Visual Basic derleyicileri bayrağını beforefieldinit
CIL sınıf tanımına ekler. Derleyiciler ayrıca statik başlatma kodunu içeren özel bir statik oluşturucu da ekler. Bu özel statik oluşturucunun, türündeki statik alanlara erişilmeden önce çalışması garanti edilir.
İhlalleri düzeltme
Bu kuralın ihlalini düzeltmek için, bildirildiğinde tüm statik verileri başlatın ve statik oluşturucuyu kaldırın.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın.