CA1026: 기본 매개 변수를 사용하면 안 됩니다.

항목
RuleId CA1026
범주 Microsoft.Design
주요 변경 내용 주요 변경

원인

외부에 표시되는 형식에 기본 매개 변수를 사용하는, 외부에 표시되는 메서드가 포함되어 있습니다.

참고 항목

이 규칙은 더 이상 사용되지 않습니다. 자세한 내용은 사용되지 않는 규칙을 참조하세요.

규칙 설명

CLS(공용 언어 사양)에서는 기본 매개 변수를 사용하는 메서드가 허용되지만 컴파일러가 해당 매개 변수에 할당된 값을 무시할 수 있습니다. 기본 매개 변수 값을 무시하는 컴파일러용으로 작성된 코드는 각 기본 매개 변수의 인수를 명시적으로 제공해야 합니다. 여러 프로그래밍 언어에서 원하는 동작을 유지 관리하려면 기본 매개 변수를 사용하는 메서드를 기본 매개 변수를 제공하는 메서드 오버로드로 바꿔야 합니다.

컴파일러는 관리 코드에 액세스할 때 C++용 관리형 확장의 기본 매개 변수 값을 무시합니다. Visual Basic 컴파일러는 Optional 키워드를 사용하는 기본 매개 변수가 있는 메서드를 지원합니다.

위반 문제를 해결하는 방법

이 규칙의 위반 문제를 해결하려면 기본 매개 변수를 사용하는 메서드를 기본 매개 변수를 제공하는 메서드 오버로드로 바꿉니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

예시

다음 예제에서는 기본 매개 변수를 사용하는 메서드와 같은 기능을 제공하는 오버로드된 메서드를 보여 줍니다.

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: 반복 인수를 매개 변수 배열로 바꾸십시오.

참고 항목

언어 독립성 및 언어 독립적 구성 요소