다음을 통해 공유


CA1801: 사용되지 않은 매개 변수를 검토하십시오.

TypeName

ReviewUnusedParameters

CheckId

CA1801

범주

Microsoft.Usage

변경 수준

주요 변경 아님 - 사용자가 변경한 내용에 상관없이 멤버가 어셈블리 외부에 표시되지 않는 경우.

주요 변경 아님 - 본문 내에 있는 매개 변수를 사용하도록 멤버를 변경하는 경우

주요 변경 - 어셈블리 외부에서 볼 수 있는 매개 변수를 제거하는 경우

원인

메서드 시그니처에 메서드 본문에서 사용되지 않는 매개 변수가 있습니다. 이 규칙은 다음 메서드를 검사하지 않습니다.

  • 대리자에서 참조하는 메서드

  • 이벤트 처리기로 사용되는 메서드

  • abstract(Visual Basic의 경우 MustOverride) 한정자로 선언된 메서드

  • virtual(Visual Basic의 경우 Overridable) 한정자로 선언된 메서드

  • override(Visual Basic의 경우 Overrides) 한정자로 선언된 메서드

  • extern(Visual Basic의 경우 Declare 문) 한정자로 선언된 메서드

규칙 설명

메서드 본문에 사용되지 않는 비가상 메서드의 매개 변수를 검토하여 액세스 실패에 대한 수정 사항이 없는지 확인합니다. 사용하지 않는 매개 변수가 있으면 유지 관리와 성능에 있어 손실이 따릅니다.

이 규칙을 위반한 경우 메서드에 구현 버그가 있을 수 있습니다. 예를 들어 메서드 본문에서 매개 변수를 사용해야 했을 수 있습니다. 이전 버전과의 호환성 때문에 해당 매개 변수가 있어야 하는 경우에는 이 규칙에서 경고를 표시하지 않도록 설정합니다.

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 사용되지 않는 매개 변수를 제거하거나(주요 변경) 메서드 본문에서 매개 변수를 사용합니다(주요 변경 아님).

경고를 표시하지 않는 경우

수정이 주요 변경 내용에 해당하는 이전에 제공된 코드의 경우에는 이 규칙에서 경고를 표시하지 않아도 안전합니다.

예제

다음 예제에서는 두 개의 메서드를 보여 줍니다. 한 메서드는 규칙을 위반하고 다른 메서드는 규칙을 충족합니다.

using System;
using System.Globalization;

namespace Samples
{
    public static class TestClass
    {
        // This method violates the rule.
        public static string GetSomething(int first, int second)
        {
            return first.ToString(CultureInfo.InvariantCulture);
        }

        // This method satisfies the rule.
        public static string GetSomethingElse(int first)
        {
            return first.ToString(CultureInfo.InvariantCulture);
        }
    }
}

관련 규칙

CA1811: 호출되지 않는 전용 코드를 사용하지 마십시오.

CA1812: 인스턴스화되지 않은 내부 클래스를 사용하지 마십시오.

CA1804: 사용되지 않는 로컬 항목을 제거하십시오.