首页 新闻 赞助 找找看

值类型问题

0
悬赏园豆:10 [已解决问题] 解决于 2011-08-22 10:41

Struct A : ICloneable
{
public Int32 x;
public override String ToString() {
return String.Format(”{0}”,x);
}
public object Clone() {
return MemberwiseClone();
}
}
static void main()
{
A a;
a.x = 100;
Console.WriteLine(a.ToString());
Console.WriteLine(a.GetType());
A a2 = (A)a.Clone();
ICloneable c = a2;
Ojbect o = c.Clone();
}

因为A是值类型,编译器不会出现多态行为。

看到这句话有个提问。关于编译器而言值类型编译器为什么不会出现多态行为?重写无用?

梦怀天的主页 梦怀天 | 菜鸟二级 | 园豆:222
提问于:2011-08-04 10:16
< >
分享
最佳答案
0

这个是编译器的选择事情,值类型分配在栈上,不支持多态估计是为了效率、简单等原因

具体可 参考 http://stackoverflow.com/questions/5557525/higher-order-polymorphism-value-types 

收获园豆:10
2012 | 高人七级 |园豆:21228 | 2011-08-05 07:55
谢谢
梦怀天 | 园豆:222 (菜鸟二级) | 2011-08-05 16:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册