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: 반복 인수를 매개 변수 배열로 바꾸십시오.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기