오늘은 Roslyn에서 작업했습니다. StaticConstructors
ITypeSymbol 속성을 발견했는데 ImmutableArray<IMethodSymbol>
으로 선언되었지만 C# 및 VB 모두 최대 하나의 정적 생성자가있을 수 있습니다. 그 이유는 무엇입니까?ITypeSymbol에 정적 생성자가 하나만있는 이유는 무엇입니까?
3
A
답변
3
내 추측 : 부분 수업.
public partial class Foo
{
static Foo() {}
}
public partial class Foo
{
static Foo() {}
}
유효하지 않은 코드 (이전에 잊어 버린)이지만 Roslyn의 객체 모델 내에서 표현해야 할 수도 있습니다. 이 코드가 인 동안 ITypeSymbol
이 Foo
인 경우 정적 생성자를 모두 찾을 수 있습니다.
-1
정적 생성자 과부하, 다른 매개 변수가 매개 변수를 가질 수 있습니다.
+3
정적 생성자는 결코 수동으로 호출하지 않기 때문에 매개 변수를 사용할 수 없습니다. –
컴파일 오류 : 'Tests.Foo'유형이 이미 동일한 매개 변수 유형이 '.cctor'인 멤버를 정의합니다. –
@PavelKrymets : Hmm. 그걸 잊었어야 했어. 컴파일되지 않는 것을위한 타입 심볼을 얻을 수 있습니까? –
예, 맞습니다. 두 개의 생성자가 있습니다. –