在装箱和拆箱操作中将预定义变量的值分配给对象类型变量

Assign Predefined Variable's Value To Object Type Variable In Boxing And UnBoxing Actions

我想研究 C# 中的装箱和拆箱操作。我在用户定义的 class 中定义了变量(这是我的 class)。但是当我想使用预定义的变量时,就会发生奇怪的错误。我的代码块如下所示。

   public int i = 123;
   /*The following line boxes i.*/ 
   public object o = i; 
   o = 123;
   i = (int)o;  // unboxing

当我测试此代码以查看 C# 中的装箱和拆箱操作时,发生了以下错误。

Error   3   Invalid token ')' in class, struct, or interface member declaration 
Error   4   Invalid token ';' in class, struct, or interface member declaration 
Error   1   Invalid token '=' in class, struct, or interface member declaration 
Error   2   Invalid token '=' in class, struct, or interface member declaration

我从来没有遇到过这样的错误。我只想使用我之前在用户定义的class(我的class)中定义的变量。

您的代码需要某种结构:

class foo
{  
    public int I = 123; // is okay
    /*The following line boxes i.*/ 
    public object O = new object();

    foo()
    {
        // operations in a body
        O = 123;
        I = (int)O;  // unboxing
    }
}

在我看来,代码行在 class 声明中。 您可以在那里声明和初始化变量,这在前两行中进行。但是,您不能在 class 范围内做更多的事情。

最后两行仅在方法范围内有效。