首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对你来说,这看起来像是C#的bug吗?

对你来说,这看起来像是C#的bug吗?
EN

Stack Overflow用户
提问于 2016-05-13 09:28:41
回答 1查看 695关注 0票数 16

创建控制台应用程序以进行重现:

代码语言:javascript
复制
struct Test
{
    public static readonly Test? Null = null;
}

class Program
{
    static void Main(string[] args)
    {
        var t = Test.Null;
    }
}

它是可编译的,但我们在运行时会有以下代码:

在mscorlib.dll中发生类型为'System.TypeLoadException‘的未经处理的异常。其他信息:无法从程序集“ConsoleApplication17,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”加载类型“”ConsoleApplication17.Test“”。“”

这种方法解决了这个问题:

代码语言:javascript
复制
struct Test
{
    public static Test? Null => null;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 09:40:58

这是CoreCLR中已知的实现限制-实例和静态字段布局一起完成,导致此错误。解决这个问题并不容易。

来源:Static fields should not contribute to cyclic struct layout #4049

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37199878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档