CA1026:不應使用預設參數
型別名稱 |
DefaultParametersShouldNotBeUsed |
CheckId |
CA1026 |
分類 |
Microsoft.Design |
中斷變更 |
中斷 |
原因
外部可見的型別會包含使用預設參數之外部可見的方法。
規則描述
允許使用預設參數的方法受制於 Common Language Specification (CLS)。不過,CLS 允許編譯器 (Compiler) 忽略已指派給這些參數的值。 專為會忽略預設參數值的編譯器所撰寫的程式碼必須明確提供每個預設參數的引數。 若要在程式語言之間維護您要的行為,則必須以提供預設參數的方法多載取代使用預設參數的方法。
當存取 Managed 程式碼時,編譯器會忽略 Managed Extension for C++ 的預設參數值。 Visual Basic 編譯器會支援具有使用 Optional (Visual Basic) 關鍵字之預設參數的方法。
如何修正違規
若要修正此規則的違規情形,請以提供預設參數的方法多載取代使用預設參數的方法。
隱藏警告的時機
請勿隱藏此規則的警告。
範例
下列範例顯示使用預設參數的方法,以及提供對等功能的方法多載。
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