编译器错误 CS0445

更新:2007 年 11 月

错误消息

无法修改取消装箱转换的结果

取消装箱转换的结果是一个临时变量,编译器禁止您修改这样的变量,因为当临时变量消失时,任何修改也随之消失。若要修复此错误,请使用一个值类型来存储中间表达式。然后您可以给值类型赋值。

下面的代码生成 CS0455:

// CS0445.CS
public struct Point 
{
    public int x;
    public static void SetX(object obj, int x) 
    {
        ((Point)obj).x = x; // CS0445
    }
}
class UnboxingTest{public static void Main(){}}