partial
형식 및 partial
멤버 선언과 관련된 오류 및 경고
partial
형식 및 partial
멤버 선언과 관련된 오류에는 여러 가지가 있습니다.
- CS0260: 형식의 선언에 partial 한정자가 없습니다. 형식이 같은 다른 partial 선언이 이미 있습니다.
- CS0261: type의 partial 선언은 모두 클래스, 구조체 또는 인터페이스여야 합니다.
- CS0262: type의 partial 선언에 충돌하는 접근성 한정자가 포함되어 있습니다.
- CS0263: type의 partial 선언에는 서로 다른 기본 클래스를 지정할 수 없습니다.
- CS0264: type의 partial 선언에서는 형식 매개 변수 이름과 그 순서가 같아야 합니다.
- CS0265: type의 partial 선언에는 'type parameter' 형식 매개 변수의 제약 조건에 일관성이 없습니다.
- CS0267: '
partial
' 한정자는 'class
', 'record
', 'struct
', 'interface
' 또는 메서드 또는 속성 반환 형식 바로 앞에만 올 수 있습니다. - CS0282: partial 클래스 또는 구조체 'type'의 여러 선언에서 필드 간 순서가 정의되어 있지 않습니다. 순서를 지정하려면 모든 인스턴스 필드가 같은 선언에 있어야 합니다.
- CS0501: 'member function'은
abstract
,extern
또는partial
로 표시되어 있지 않으므로 본문을 선언해야 합니다. - CS0750: partial 멤버는 '
abstract
' 한정자를 가질 수 없습니다. - CS0751: partial 멤버는 partial
class
또는 partialstruct
에서 선언해야 합니다. - CS0754: partial 멤버는 인터페이스 메서드를 명시적으로 구현할 수 없습니다.
- CS0755: 두 부분 메서드 선언 모두 확장 메서드이거나 확장 메서드가 아니어야 합니다.
- CS0756: 부분 메서드에는 하나의 정의 선언만 사용할 수 있습니다.
- CS0757: 부분 메서드에는 하나의 구현 선언만 사용할 수 있습니다.
- CS0759: 부분 메서드의 구현 선언에 대한 정의 선언이 없습니다.
- CS0761:
method<T>
의 부분 메서드 선언에는 형식 매개 변수 제약 조건의 일관성이 없습니다. - CS0762: 구현 선언이 없는 부분 메서드이므로 이 메서드로부터 대리자를 만들 수 없습니다.
- CS0763: 두 부분 메서드 선언 모두
static
이거나static
이 아니어야 합니다. - CS0764: 두 부분 메서드 선언 모두
unsafe
이거나unsafe
가 아니어야 합니다. - CS1067: partial 선언에서는 형식 매개 변수 이름 및 variance 한정자와 그 순서가 같아야 합니다.
- CS8142: 두 partial 멤버 선언 모두 동일한 튜플 요소 이름을 사용해야 합니다.
- CS8663: 두 partial 멤버 선언은 모두 읽기 전용이거나 읽기 전용이 아니어야 합니다.
- CS8796: 부분 메서드에는 void가 아닌 반환 형식이 있으므로 접근성 한정자가 있어야 합니다.
- CS8795: partial 멤버에는 접근성 한정자가 있으므로 구현 부분이 있어야 합니다.
- CS8797: 부분 메서드에는 '
out
' 매개 변수가 있으므로 접근성 한정자가 있어야 합니다. - CS8798: 부분 메서드에는 '
virtual
', 'override
', 'sealed
', 'new
' 또는 'extern
' 한정자가 있으므로 접근성 한정자가 있어야 합니다. - CS8799: 두 partial 멤버 선언 모두 동일한 접근성 한정자가 있어야 합니다.
- CS8800: 두 partial 멤버 선언 모두
virtual
,override
,sealed
및new
한정자의 동일한 조합이 있어야 합니다. - CS8817: 두 부분 메서드 선언 모두 동일한 반환 형식을 가져야 합니다.
- CS8818: partial 멤버 선언에는 일치하는
ref
반환 값이 있어야 합니다. - CS8863: 단일 부분 형식 선언만 매개 변수 목록을 가질 수 있습니다.
- CS8988: 매개 변수의
scoped
한정자가 부분 정의와 일치하지 않습니다. - CS9248: Partial 속성에는 구현 부분이 있어야 합니다.
- CS9249: Partial 속성에는 정의 부분이 있어야 합니다.
- CS9250: Partial 속성에는 하나의 정의 선언만 사용할 수 있으며 자동 속성이 될 수 없습니다.
- CS9251: Partial 속성에는 하나의 구현 선언만 사용할 수 있습니다.
- CS9252: 속성 접근자는 정의 부분에 선언되어 있으므로 구현해야 합니다.
- CS9253: 속성 접근자가 정의 부분에 선언된 접근자를 구현하지 않습니다.
- CS9254: 속성 접근자가 정의 부분과 일치해야 합니다.
- CS9255: 두 partial 속성 선언은 모두 동일한 형식이어야 합니다.
- CS9256: Partial 속성 선언에 서명 차이가 있습니다.
- CS9257: 두 partial 속성 선언은 모두 필요하거나 둘 다 필요하지 않을 수 있습니다.
다음 섹션에서는 이러한 오류 및 경고의 원인과 수정을 설명합니다.
부분 형식(Partial Type)
- CS0260: 형식의 선언에 partial 한정자가 없습니다. 형식이 같은 다른 partial 선언이 이미 있습니다.
- CS0261: type의 partial 선언은 모두 클래스, 구조체 또는 인터페이스여야 합니다.
- CS0262: type의 partial 선언에 충돌하는 접근성 한정자가 포함되어 있습니다.
- CS0263: type의 partial 선언에는 서로 다른 기본 클래스를 지정할 수 없습니다.
- CS0264: type의 partial 선언에서는 형식 매개 변수 이름과 그 순서가 같아야 합니다.
- CS0265: type의 partial 선언에는 'type parameter' 형식 매개 변수의 제약 조건에 일관성이 없습니다.
- CS0267: '
partial
' 한정자는 'class
', 'record
', 'struct
', 'interface
' 또는 메서드 또는 속성 반환 형식 바로 앞에만 올 수 있습니다. - CS8863: 단일 부분 형식 선언만 매개 변수 목록을 가질 수 있습니다.
부분 형식(Partial Type) 선언으로 인해 컴파일러가 다음 경고를 내보낼 수 있습니다.
- CS0282: partial
class
또는struct
'type'의 여러 선언에서 필드 간 순서가 정의되어 있지 않습니다. 순서를 지정하려면 모든 인스턴스 필드가 같은 선언에 있어야 합니다.
부분 형식(Partial Type)의 경우 partial
키워드는 class
, record
, struct
또는 interface
의 바로 앞에 와야 합니다. 컴파일러는 다른 순서로 표시되는 경우 오류를 내보냅니다. 추가:
- 부분 형식(Partial Type)의 모든 선언은 형식(
class
,struct
,record class
,record struct
,readonly struct
또는readonly record struct
)의 측면에서 일치해야 합니다. - 모든 선언은
partial
한정자를 포함해야 합니다. - 제네릭 부분 형식(Partial Type)에 대한 선언에는 동일한 형식 매개 변수가 동일한 순서로 포함되어야 합니다.
선언의 일부 부분은 형식에 대한 모든 선언에서 반복될 필요가 없습니다. 그러나 이러한 요소가 여러 partial
선언에서 반복되는 경우 다음과 일치해야 합니다.
- 모든 액세스 한정자(예:
public
). - 기본 클래스 또는 구현된 인터페이스.
- 형식 매개 변수에 대한 제약 조건.
부분 형식(Partial Type)에 대한 최대 하나의 선언에서 기본 생성자를 선언할 수 있습니다.
여러 필드가 partial struct
형식에 대해 여러 파일에 선언되어 있으면 컴파일러에서 경고합니다. 레이아웃 순서가 중요한 경우 동일한 파일의 모든 필드를 선언해야 합니다. 순서가 중요하지 않은 경우 LayoutKind.Auto 값과 함께 System.Runtime.InteropServices.StructLayoutAttribute을(를) 사용할 수 있습니다.
Partial 멤버
- CS0750: partial 멤버는 '
abstract
' 한정자를 가질 수 없습니다. - CS0751: partial 멤버는 partial
class
또는 partialstruct
에서 선언해야 합니다. - CS0754: partial 멤버는 인터페이스 메서드를 명시적으로 구현할 수 없습니다.
- CS0763: 두 부분 메서드 선언 모두
static
이거나static
이 아니어야 합니다. - CS0764: 두 부분 메서드 선언 모두
unsafe
이거나unsafe
가 아니어야 합니다. - CS8142: 두 partial 멤버 선언 모두 동일한 튜플 요소 이름을 사용해야 합니다.
- CS8663: 두 partial 멤버 선언은 모두 읽기 전용이거나 읽기 전용이 아니어야 합니다.
- CS8799: 두 partial 멤버 선언 모두 동일한 접근성 한정자가 있어야 합니다.
- CS8800: 두 partial 멤버 선언 모두
virtual
,override
,sealed
및new
한정자의 동일한 조합이 있어야 합니다. - CS8818: partial 멤버 선언에는 일치하는
ref
반환 값이 있어야 합니다. - CS8988: 매개 변수의
scoped
한정자가 부분 정의와 일치하지 않습니다.
Partial 멤버에는 두 개의 선언이 있습니다. 구현이 없는 선언은 선언적 선언입니다. 구현이 포함된 선언은 구현 선언입니다. Partial 멤버는 partial
형식에서만 허용됩니다. Partial 멤버는 abstract
일 수 없습니다. Partial 멤버는 인터페이스를 명시적으로 구현할 수 없습니다. Partial 멤버의 두 선언에는 동일한 서명이 있어야 합니다. 예를 들어 두 선언 모두 static
또는 unsafe
한정자를 포함하거나 두 선언 모두 포함할 수 없습니다.
부분 메서드
- CS0501: 'member function'은
abstract
,extern
또는partial
로 표시되어 있지 않으므로 본문을 선언해야 합니다. - CS0755: 두 부분 메서드 선언 모두 확장 메서드이거나 확장 메서드가 아니어야 합니다.
- CS0756: 부분 메서드에는 하나의 정의 선언만 사용할 수 있습니다.
- CS0757: 부분 메서드에는 하나의 구현 선언만 사용할 수 있습니다.
- CS0759: 부분 메서드의 구현 선언에 대한 정의 선언이 없습니다.
- CS0761:
method<T>
의 부분 메서드 선언에는 형식 매개 변수 제약 조건의 일관성이 없습니다. - CS0762: 구현 선언이 없는 부분 메서드이므로 이 메서드로부터 대리자를 만들 수 없습니다.
- CS1067: partial 선언에서는 형식 매개 변수 이름 및 variance 한정자와 그 순서가 같아야 합니다.
- CS8796: 부분 메서드에는 void가 아닌 반환 형식이 있으므로 접근성 한정자가 있어야 합니다.
- CS8795: partial 멤버에는 접근성 한정자가 있으므로 구현 부분이 있어야 합니다.
- CS8797: 부분 메서드에는 '
out
' 매개 변수가 있으므로 접근성 한정자가 있어야 합니다. - CS8798: 부분 메서드에는 '
virtual
', 'override
', 'sealed
', 'new
' 또는 'extern
' 한정자가 있으므로 접근성 한정자가 있어야 합니다. - CS8817: 두 부분 메서드 선언 모두 동일한 반환 형식을 가져야 합니다.
특정 partial
메서드 선언에는 구현 선언이 필요하지 않습니다. 즉, 멤버가 void
를 반환하고 액세스 한정자(기본 private
한정자 포함)를 선언하지 않으며, virtual
, override
, sealed
또는 new
한정자를 포함하지 않는 경우입니다. 그렇지 않으면 부분 메서드에는 선언 및 구현 선언이 모두 포함되어야 합니다.
부분 메서드에 구현 선언이 포함된 경우 두 선언이 모두 동일해야 합니다. 정확히 하나의 구현 선언을 정의할 수 있습니다.
Partial 속성
다음 오류는 partial 속성 또는 인덱서 선언의 실수를 나타냅니다.
- CS9248: Partial 속성에는 구현 부분이 있어야 합니다.
- CS9249: Partial 속성에는 정의 부분이 있어야 합니다.
- CS9250: Partial 속성에는 하나의 정의 선언만 사용할 수 있으며 자동 속성이 될 수 없습니다.
- CS9251: Partial 속성에는 하나의 구현 선언만 사용할 수 있습니다.
- CS9252: 속성 접근자는 정의 부분에 선언되어 있으므로 구현해야 합니다.
- CS9253: 속성 접근자가 정의 부분에 선언된 접근자를 구현하지 않습니다.
- CS9254: 속성 접근자가 정의 부분과 일치해야 합니다.
- CS9255: 두 partial 속성 선언은 모두 동일한 형식이어야 합니다.
- CS9257: 두 partial 속성 선언은 모두 필요하거나 둘 다 필요하지 않을 수 있습니다.
다음 경고는 partial 속성에서 선언 및 구현 선언의 서명 차이를 나타냅니다.
- CS9256: Partial 속성 선언에 서명 차이가 있습니다.
부분 속성 또는 인덱서에는 선언적 선언과 구현 선언이 모두 있어야 합니다. 두 선언의 서명이 일치해야 합니다. 선언 선언은 자동으로 구현된 속성과 동일한 구문을 사용하므로 구현 선언은 자동으로 구현되는 속성이 될 수 없습니다. 접근자에 본문이 있어야 합니다.
.NET