那位大侠能帮我解释关于C#值类型,不是都是继承的object吗,怎么继承下来成了值类型,object不是引用类型

谢谢各位,不过我问的不是值类型和引用类型的区别,而是object不是对象的基类吗,所有C#类型都继承自object,为什么从object一路继承下来,类类型变成了值类型?

C#的类都是继承object是引用类型,值类型例外。
引用类型和值类型的区别:
值类型是复制值操作的。
int a, b;
a=0;
b=a; // b和a同时为0
a=1; // b依旧为0, a为1

引用类型:
class tt
{
public string s;
}
tt a, b;

a = new tt();
a.s="aa";
b = a; // b指向a, b.s="aa"
a.s = "nb"; // b指向a, b.s="nb"
可以看出引用对象发生变化后,变量指向的内容也自动发生变化
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-08
object 是基本类型,在你继承的时候,应该是用值类型继承的,那就会转换为值类型,用引用类型继承的,就会转换为引用类型,你可以定义object 类型的,继承来就还是object类型的。
第2个回答  2010-12-08
c#是强类型语言 硬式转换就好了。具体来说
常用方法:
方法1:
object i = 10;
int j = (int)i;
方法2:
object i = 10;
int j = Convent.Toint32(i);
object是引用类型的
引用类型与值类型的区别在于引用类型被其他变量赋值,该引用类型的地址将指向赋给它值的变量,所以赋给它值的变量变化,引用类型也就变化。
第3个回答  2020-10-29
这个从C#的角度看不出问题所在,值类型就是不包含虚表的类型,而对象是必须包含虚表的,所以值类型不是从Object那继承的。
可以包装值类型是因为有Object版本的“值类型”比如int会有Int32,隐式转换了一次。
C#的实现细节还是比较好的,int和Int32用起来没什么差别,但在java里这样乱用会发现不能正常获得值的!!!
第4个回答  2010-12-08
详细问题
相似回答