今天与 Roslyn 合作时,我偶然发现了 StaticConstructors
ITypeSymbol 的属性,声明为 ImmutableArray<IMethodSymbol>
但据我所知,在 C# 和 VB 中最多只能有一个静态构造函数。问题是为什么?
最佳答案
我的猜测:部分类。
public partial class Foo
{
static Foo() {}
}
public partial class Foo
{
static Foo() {}
}
即使那不是有效代码(我之前忘记了),它可能需要在 Roslyn 的对象模型中表示。如果您可以在Foo
的ITypeSymbol
处获取正在 编译此代码,您可能会在那里找到两个静态构造函数。
关于c# - 为什么 ITypeSymbol 中有静态构造函数的集合而不是一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801839/