c# - 为什么 ITypeSymbol 中有静态构造函数的集合而不是一个?

标签 c# roslyn

今天与 Roslyn 合作时,我偶然发现了 StaticConstructors ITypeSymbol 的属性,声明为 ImmutableArray<IMethodSymbol>但据我所知,在 C# 和 VB 中最多只能有一个静态构造函数。问题是为什么?

最佳答案

我的猜测:部分类。

public partial class Foo
{
    static Foo() {}
}

public partial class Foo
{
    static Foo() {}
}

即使那不是有效代码(我之前忘记了),它可能需要在 Roslyn 的对象模型中表示。如果您可以在FooITypeSymbol 处获取正在 编译此代码,您可能会在那里找到两个静态构造函数。

关于c# - 为什么 ITypeSymbol 中有静态构造函数的集合而不是一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801839/

相关文章:

javascript - jQuery 引用模板字段中的控件 ID

c# - 如何使用 Roslyn/代码分析读取 XML 文档注释

c# - Roslyn future 分支不能使用 C# 7 功能元组 - 错误 CS0518 预定义类型 'System.ValueTuple` 2

c# - VS2019 Roslyn编译器通用约束方法解析

c# - 无法检索显式接口(interface)实现的成员

c# - SHA256 计算的哈希值似乎有问题

c# - WPF MVVM中用于数据库事务的任务,BackgroundWorkers或新线程?

C#通过ref传递内部具有相同属性的不同类型的对象,并在没有接口(interface)的情况下填充它们

c# - asp.net core 2.2 在类库中使用 HttpCookieCollection

c# - 可靠地将类型符号 (ITypeSymbol) 与 Roslyn 进行比较