다음을 통해 공유


구조체 필드를 쓰기 가능으로 만들기(IDE0064)

재산
규칙 ID IDE0064
제목 구조체 필드를 쓰기 가능으로 만들기
카테고리 CodeQuality
하위 범주 언어 규칙(한정자 선호 설정)
적용 가능한 언어 C#

개요

이 규칙은 하나 이상의 readonly 필드를 포함하고 생성자 외부에서 this 할당을 포함하는 구조체를 검색합니다. 규칙은 readonly 필드를 읽기 전용이 아닌 쓰기 가능으로 변환하는 것이 좋습니다. 이러한 구조체 필드를 readonly 표시하면 생성자 외부에서 this 할당할 때 필드에 할당된 값이 변경되어 예기치 않은 동작이 발생할 수 있습니다.

옵션

이 규칙에는 연결된 코드 스타일 옵션이 없습니다.

예시

// Code with violations
struct MyStruct
{
    public readonly int Value;

    public MyStruct(int value)
    {
        Value = value;
    }

    public void Test()
    {
        this = new MyStruct(5);
    }
}

// Fixed code
struct MyStruct
{
    public int Value;

    public MyStruct(int value)
    {
        Value = value;
    }

    public void Test()
    {
        this = new MyStruct(5);
    }
}

경고 표시 안 함

단일 위반만 표시하지 않으려면 소스 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 다음 다시 사용하도록 설정합니다.

#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064

파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 해당 심각도를 구성 파일none 설정합니다.

[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none

이 전체 규칙 범주를 사용하지 않도록 설정하려면 구성 파일범주의 심각도를 none 설정합니다.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none

자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.

참조