点点滴滴 访问量:
posts - 84,comments - 117,trackbacks - 7
 

今天向朋友请教一个问题,对话是这样子的,

问:c#下用一个实例 赋给一个新定义的对象,copy过去?还是引用?

答:引用

问:你肯定?

答: 恩,C#下的赋值都是引用

完了我就写了下面的代码去测试,代码如下:

class myClass
    
{
        
public int num ;
    }
;

    
struct myStruct
    
{
        
public int num ;
    }
;

class Program
    
{
        
static void Main(string[] args)
        
{
          myClass myclass 
= new myClass();
          myClass myclassb 
= myclass;

          myClass myclassa 
= new myClass();
          myclassa 
= myclass;  

          myclassa.num 
= 1;
          Console.WriteLine(
"myclass.num = " + myclass.num.ToString());
          Console.WriteLine(
"myclassa.num =" + myclassa.num.ToString() + "\t\tmyclassb.num = " + myclassb.num.ToString()); 


          myclass.num 
= 2;
          Console.WriteLine(
"myclass.num = " + myclass.num.ToString());
          Console.WriteLine(
"myclassa.num =" + myclassa.num.ToString() + "\t\tmyclassb.num = " + myclassb.num.ToString()); 


///////////////////////////////////////////////////////////////////// 
          myStruct mystruct = new myStruct();
          myStruct mystruct1 
= mystruct;
          mystruct1.num 
= 1;
          Console.WriteLine(
"\n\nmystruct.num =" + mystruct.num.ToString() + "\t\tmystruct1.num =" + mystruct1.num.ToString());

          mystruct.num 
= 2;
          Console.WriteLine(
"mystruct.num =" + mystruct.num.ToString() + "\t\tmystruct1.num =" + mystruct1.num.ToString());
        }

    }



 

代码看完了,写出你认为的结果,是什么?





































 

我想不用说大家都知道结论是什么了吧  *^_^*



posted on 2008-01-09 19:15 sopper 阅读(177) 评论(3)  编辑 收藏 网摘

FeedBack:
2008-01-09 19:49 | xm [未注册用户]
结构是值类型,类是引用类型

沙发一个
  回复  引用    
2008-01-09 22:25 | 路过 [未注册用户]
这位楼主,说实话,,我不知道你写的代码要说明什么,我还没看你的结果我就给出了答案。难道您不知道托管和非托管类型的差别吗?
  回复  引用    
2008-01-10 10:01 | 黑羽飘舞      
protected void Page_Load(object sender, EventArgs e)
{
myClass myclass = new myClass();
myClass myclassb = myclass;

myClass myclassa = new myClass();
myclassa = myclass;

myclassa.num = 1;
Response.Write("myclass.num = " + myclass.num.ToString()+"
");
Response.Write("myclassa.num =" + myclassa.num.ToString() + "\t\tmyclassb.num = " + myclassb.num.ToString() + "
");


myclass.num = 2;
Response.Write("myclass.num = " + myclass.num.ToString() + "
");
Response.Write("myclassa.num =" + myclassa.num.ToString() + "\t\tmyclassb.num = " + myclassb.num.ToString() + "

");


/**/
/////////////////////////////////////////////////////////////////////
myStruct mystruct = new myStruct();
myStruct mystruct1 = mystruct;
mystruct1.num = 1;
Response.Write("\n\nmystruct.num =" + mystruct.num.ToString() + "\t\tmystruct1.num =" + mystruct1.num.ToString() + "
");

mystruct.num = 2;
Response.Write("mystruct.num =" + mystruct.num.ToString() + "\t\tmystruct1.num =" + mystruct1.num.ToString() + "

");


/**/
/////////////////////////////////////////////////////////////////////
myStructClass mystc = new myStructClass();
myStructClass mystc1 = mystc;
mystc1.nump.num1 = 1;

Response.Write("mystc =" + mystc.nump.num1.ToString() + "\t\tmystc1 =" + mystc1.nump.num1 + "
");

mystc.nump.num1 = 2;
Response.Write("mystc =" + mystc.nump.num1.ToString() + "\t\tmystc1 =" + mystc1.nump.num1 + "
");
}
class myClass
{
public int num;
};

struct myStruct
{
public int num;
};
class myStructClass
{
public num nump = new num();
public struct num
{
public int num1;
}
}

呵呵,把这段代码COPY到你的PAGE里,再看看能否找到你需要的答案。
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: