一级棒(Eachfun)
一级棒 - 编程园地 - C#学习心得 - class与struct的区别
RSS订阅
class与struct的区别
发表时间:2007-08-15 23:33:40 关键词:C#,Visual,编程,学习,心得,体会

  在C++中,Struct与class是等价的,唯一区别是struct默认为public成员,class默认为private成员。但是到了C#中,它们却有很大的不同:struct对象是值类型、class对象是引用类型。
public class RefType
{
  public int Var;
}
public struct ValueType
{
  public int Var;
}
private void TextValueRef()
{
  RefType reft = new RefType();
  ValueType valuet = new ValueType();
  reft.Var = 100;
  valuet.Var = 100;
  RefType reftOther = reft;
  ValueType valuetOther = valuet;
  reftOther.Var = 1000;
  valuetOther.Var = 1000;
  Response.Write("RefType:Var=" + reft.Var.ToString() + "<br>");
  Response.Write("ReftTypeOther:Var=" + reftOther.Var.ToString() + "<br>");
  Response.Write("ValueType.Var=" + valuet.Var.ToString() + "<br>");
  Response.Write("ValueTypeOther:Var=" + valuetOther.Var.ToString() + "<br>");
}
  对reftOther的赋值影响了reft,而对valuetOther的赋值不影响valuet。
  我不知道C#这样做是为了什么,但是有一点可以肯定:“类名 对象名A=对象名B”这样的语句,对于两种对象来说是不一样的结果。而且,这两种结果与C++都不一样(C++里是调用拷贝构造函数或operator =函数)。

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
相关文章
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!