CA1026: Varsayılan parametreler kullanılmamalıdır
TürAdı |
DefaultParametersShouldNotBeUsed |
CheckId |
CA1026 |
Kategori |
Microsoft.Design |
Bozan Değişiklik |
Bozan |
Sebep
Dışarıdan görünen tür varsayılan parametre kullanan dışarıdan görünen bir yöntem içerir.
Kural Tanımı
Varsayılan parametreleri kullanma yöntemlere Common Language Specification (cls) altında izin verilir; ancak, CLS bu parametreler için atanmış değerleri göz ardı eden derleyicilere izin verir.Varsayılan parametre değerlerinı göz ardı eden derleyiciler için yazılmış kod açıkça her varsayılan parametre için bağımsız değişkenlerinin sağlanmasını gerektirir.Programlama dilleri arasında istediğiniz davranışı korumak için varsayılan parametreleri kullanma yöntemleri varsayılan parametrelerini sağlayan yöntemi aşırı değiştirilmelidir.
Derleyiciler, yönetilen kod eriştiğinde, C++ için Yönetilmiş Uzantıların varsayılan parametrelerin değerlerini yoksayar.Bir İsteğe Bağlı (Visual Basic) anahtar sözcüğü kullanan varsayılan parametrelere sahip olan yöntemleri Visual Basic derleyicisi destekler.
İhlallerin Düzeltilmesi
Bu kuralı ihlalini düzeltmek için, varsayılan parametreleri sağlayan aşırı yükleme ile varsayılan parametreleri kullanılan yöntemi değiştirin.
Uyarılar Ne Zaman Bastırılmalı
Bu kuraldan bir uyarı gizlemeyin.
Örnek
Aşağıdaki örnek, varsayılan parametreleri kullanan bir yöntemi ve eşdeğer bir işlevselliği sağlayan aşırı yüklenmiş yöntemleri gösterir.
Imports System
<Assembly: CLSCompliant(True)>
Namespace DesignLibrary
Public Class DefaultVersusOverloaded
Sub DefaultParameters(Optional parameter1 As Integer = 1, _
Optional parameter2 As Integer = 5)
' ...
Console.WriteLine("{0} : {1}", parameter1, parameter2)
End Sub
Sub OverloadedMethod()
OverloadedMethod(1, 5)
End Sub
Sub OverloadedMethod(parameter1 As Integer)
OverloadedMethod(parameter1, 5)
End Sub
Sub OverloadedMethod(parameter1 As Integer, parameter2 As Integer)
' ...
Console.WriteLine("{0} : {1}", parameter1, parameter2)
End Sub
End Class
End Namespace
İlgili Kurallar
CA1025: Tekrarlanan bağımsız değişkenleri params dizisi ile değiştirin