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