재산 | 값 |
---|---|
규칙 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
자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.
참조
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET