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 noneolarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none

Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.