为什么我不能返回一个静态只读字段?

ven*_*eis 2 c# return ref c#-7.0

以下代码无法使用C# 7.0/ Visual Studio 2017.2进行编译:

class C {
    private static readonly int s = 5;
    public static ref int Data => ref s;
}
Run Code Online (Sandbox Code Playgroud)

是否存在禁止静态只读字段引用的技术原因,或者这只是一个缺失的功能?

错误消息说:

CS8162:静态只读字段不能通过引用返回.

SLa*_*aks 10

因为它readonly.

关键ref是允许更改引用的变量,这将违反readonly.

  • @ventiseis:这是`ref`的另一个目的.但由于没有`ref readonly`,你不能将这两个目的分开. (2认同)