Aracılığıyla paylaş


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
Düzeltme kırılgan mı yoksa sağlam mı Non-breaking
.NET 10'da varsayılan olarak etkin Öneri olarak

Nedeni

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.

Example

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, none önem derecesini olarak ayarlayın.

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

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