共用方式為


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

相關規則

CA1025:必須以參數陣列取代重複的引數

請參閱

概念

語言獨立性以及與語言無關的元件