更改只读字符串字段

时间:2016-12-09 04:17:52

标签: c# string fixed readonly unsafe

为什么我能这样做?这是一个错误吗?

Debug.WriteLine (System.Boolean.FalseString); // output: "False"

fixed (char* xx = System.Boolean.FalseString) {
    xx[1] = 'X';
}

Debug.WriteLine (System.Boolean.FalseString); // output: "FXlse"

然后,FalseString具有新值。

我不知道是否是一个错误,因为FalseString是一个只读字段。

是否存在安全问题?

托管模型真的不安全吗?

我是否可以从卫星库进行更改,这可能导致主进程崩溃?

1 个答案:

答案 0 :(得分:0)

正如Brandon Ibbotson和Dispersia已经提到的,由于这个原因,这不被视为安全漏洞 "It rather involved being on the other side of this airtight hatchway: ..."原则,正如Raymond Chen在他的许多blog帖子中幽默地阐述了其他人提出的类似问题。