CA2263: Tür bilindiğinde genel aşırı yüklemeyi tercih edin
Değer | |
---|---|
Kural Kimliği | CA2263 |
Başlık | Tür bilindiğinde genel aşırı yüklemeyi tercih edin |
Kategori | Kullanım |
Hataya neden olan veya bozulmayan düzeltme | Hataya neden olmayan |
.NET 9'da varsayılan olarak etkin | Öneri olarak |
Neden
Derleme zamanında tür bilindiğinde ve uygun bir System.Type genel aşırı yükleme kullanılabilir olduğunda bağımsız değişken kabul eden bir yöntem aşırı yüklemesi çağrılır.
Kural açıklaması
Genel aşırı yüklemeler, derleme zamanında tür System.Type bilindiğinde türün bağımsız değişkenini kabul eden aşırı yüklemeler için tercih edilir (C# dilinde typeof işlecini veya Visual Basic'teki GetType işlecini kullanarak). Genel aşırı yüklemeler, geliştirilmiş derleme zamanı denetimleriyle daha temiz ve daha fazla tür açısından güvenli kod sağlar.
İhlalleri düzeltme
Bu kuralın ihlalini düzeltmek için uygun genel aşırı yüklemeyi kullanın.
Örnek
Aşağıdaki kod parçacığı CA2263 ihlalini gösterir:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
Aşağıdaki kod parçacığı ihlali düzeltir:
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan gelen bir uyarıyı engellemek güvenlidir; ancak mümkünse genel bir aşırı yükleme kullanmanızı öneririz.
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.