0
我为什么要这样做?这是一个错误吗?更改只读字符串字段
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
是一个只读字段。
是否存在安全问题?
托管模型不是很安全吗?
我可以从卫星库进行更改,可以使主进程崩溃吗?
有一个关键字被称为“不安全”的原因 – Dispersia
这是什么让你感到困惑?你正在进入记忆并以一种不关心只读的方式进行修改。 – byxor
我并不困惑。 我知道我正在用指针访问内存。 在我看来,这在我看来是一个设计错误和框架的概念。 我只是认为readonly是在内存的受保护或只读(受控)部分中创建的。 实际上,“不安全”一词被放置在不安全的代码中,这是令人困惑的。 只读应该是只读的,不安全的应该释放我自己的数据并且不允许我修改没有标记为“不安全”的代码数据 – jmmcba