首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Boxing和UnBoxing操作中将预定义变量的值赋值给对象类型变量

在Boxing和UnBoxing操作中将预定义变量的值赋值给对象类型变量
EN

Stack Overflow用户
提问于 2015-05-13 20:31:44
回答 2查看 141关注 0票数 0

我想检查一下C#中的装箱和取消装箱操作。我在用户定义的类中定义了变量(它是我的类)。但是当我想要使用预定义的变量时,就会出现奇怪的错误。我的代码块如下所示。

代码语言:javascript
复制
   public int i = 123;
   /*The following line boxes i.*/ 
   public object o = i; 
   o = 123;
   i = (int)o;  // unboxing

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

代码语言:javascript
复制
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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-13 20:37:32

您的代码需要某种结构:

代码语言:javascript
复制
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
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-05-13 20:41:05

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30224655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档