- CS8343:
ref structs
인터페이스를 구현할 수 없습니다. - CS8344:
foreach
문은 형식이ref struct
를 허용하는ref struct
또는 형식 매개 변수이므로 비동기 또는 반복기 메서드의 열거자에서 작동할 수 없습니다. - CS8345: 필드 또는 자동 구현 속성은
ref struct
의 인스턴스 멤버인 경우 외에는 형식일 수 없습니다. - CS9048:
scoped
한정자는 ref 및ref struct
값에만 사용할 수 있습니다. - CS9050:
ref
필드는ref struct
를 참조할 수 없습니다. - CS9059: ref 필드는 ref struct에서만 선언할 수 있습니다.
- CS9241: 'ref struct'가 이미 지정되었습니다.
- CS9242: 'allows' 제약 조건 절은 마지막으로 지정된 제약 조건이어야 합니다.
- CS9243: 다른 제약 조건에서 클래스로 알려진 형식 매개 변수에 대한 ref struct를 허용할 수 없습니다.
- CS9244: 형식은
ref struct
가 아니거나 제네릭 형식이나 메서드에서 매개 변수로 사용하기 위해 ref struct를 허용하는 형식 매개 변수가 될 수 없습니다. - CS9245: 형식이
ref struct
형식에 대한 인터페이스 멤버를 구현할 수 없습니다. - CS9246: ref struct를 허용하는 형식 매개 변수에서 비가상 인스턴스 인터페이스 멤버에 액세스할 수 없습니다.
- CS9247: foreach 문은 ref struct를 허용하는 형식 매개 변수이고 컴파일 시간에
IDisposable
을 구현하는 방법을 알 수 없기 때문에 형식의 열거자에서 작동할 수 없습니다. - CS9267: 반복기의 요소 형식이 ref 구조체 또는 ref 구조체를 허용하는 형식 매개 변수가 아닐 수 있습니다.
- CS8345: 필드 또는 자동 구현 속성은
ref struct
의 인스턴스 멤버인 경우 외에는 형식일 수 없습니다. - CS9048:
scoped
한정자는 ref 및ref struct
값에만 사용할 수 있습니다. - CS9050:
ref
필드는ref struct
를 참조할 수 없습니다. - CS9059:
ref
필드는ref struct
에서만 선언할 수 있습니다.
ref struct
형식에는 ref
필드가 포함될 수 있습니다. 다른 형식은 허용된 ref
필드가 아닙니다. 컴파일러는 ref struct
형식의 인스턴스에 ref 안전 규칙을 적용하기 위해 ref struct
형식의 선언 및 사용에 제한을 적용합니다.
- 형식만
ref struct
자동으로 구현된 속성을 포함할ref
수 있습니다. ref struct
형식 또는ref
변수만scoped
한정자를 가질 수 있습니다.ref
필드는ref struct
형식에서만 선언될 수 있습니다.ref
필드는ref struct
형식을 참조할 수 없습니다.
이러한 규칙 중 하나라도 위반하면 나열된 오류 중 하나가 발생합니다. 해당 언어 기능을 사용하려는 경우 해당 형식을 ref struct
로 변환합니다. 그렇지 않으면 허용되지 않는 구문을 제거합니다.
- CS8343:
ref structs
는 인터페이스를 구현할 수 없습니다. - CS8344:
foreach
문은 형식이ref struct
를 허용하는ref struct
또는 형식 매개 변수이므로 비동기 또는 반복기 메서드의 열거자에서 작동할 수 없습니다. - CS9241: 'ref struct'가 이미 지정되었습니다.
- CS9242: 'allows' 제약 조건 절은 마지막으로 지정된 제약 조건이어야 합니다.
- CS9243: 다른 제약 조건에서 클래스로 알려진 형식 매개 변수에 대한 ref struct를 허용할 수 없습니다.
- CS9244: 형식은
ref struct
가 아니거나 제네릭 형식이나 메서드에서 매개 변수로 사용하기 위해 ref struct를 허용하는 형식 매개 변수가 될 수 없습니다. - CS9245: 형식이
ref struct
형식에 대한 인터페이스 멤버를 구현할 수 없습니다. - CS9246: ref struct를 허용하는 형식 매개 변수에서 비가상 인스턴스 인터페이스 멤버에 액세스할 수 없습니다.
- CS9247: foreach 문은 ref struct를 허용하는 형식 매개 변수이고 컴파일 시간에
IDisposable
을 구현하는 방법을 알 수 없기 때문에 형식의 열거자에서 작동할 수 없습니다. - CS9267: 반복기의 요소 형식이 ref 구조체 또는 ref 구조체를 허용하는 형식 매개 변수가 아닐 수 있습니다.
C# 13 이전에는 ref struct
형식이 인터페이스를 구현할 수 없었습니다. 컴파일러는 CS8343을 생성합니다. C# 13부터 ref struct
형식은 다음 규칙에 따라 인터페이스를 구현할 수 있습니다.
ref struct
는 자신이 구현하는 인터페이스의 인스턴스로 변환될 수 없습니다. 이 제한에는 매개 변수가 인터페이스 형식인 경우ref struct
형식을 인수로 사용할 때의 암묵적 변환이 포함됩니다. 이 변환은 ref 안전을 위반하는 boxing 변환으로 이어집니다.- 인터페이스 를 구현하는
ref struct
는 모든 인터페이스 멤버를 구현해야 합니다.ref struct
는 인터페이스에 기본 구현이 포함된 멤버를 구현해야 합니다.
C# 13부터 ref struct
를 제네릭 형식 매개 변수의 형식 인수로 사용할 수 있습니다. 단, 제네릭 형식 매개 변수에 allows ref struct
안티 제약 조건이 있는 경우에만 가능합니다. allows ref struct
안티 제약 조건을 사용하는 경우 다음 규칙을 따라야 합니다.
ref struct
가 형식 인수로 사용되고 형식 매개 변수 는 반드시allows ref struct
안티 제약 조건을 가져야 합니다. -allows ref struct
안티 제약 조건은 해당 매개 변수에 대한where
절의 마지막에 있어야 합니다.- 인스턴스를 사용하는 경우 형식 매개 변수는 ref 안전 규칙을 따라야 합니다.
- 형식일 수 있는 A
ref struct
또는 형식 인수는ref struct
반복기 메서드의 요소 형식으로 사용할 수 없습니다.
.NET 피드백
.NET 은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.