首页 新闻 搜索 专区 学院

C# 向大家请教一个关于类型转换的基础问题...

0
悬赏园豆:5 [已解决问题] 解决于 2013-01-29 16:05

问题在下图中,另外在图后我附上代码,供大家调试..

 

using System;
class Person 
{
    public string Name{get;set;}
}
class Student : Person
{
    //public string SchoolName { get; set; }
}
class Test
{
    static void Main()
    {
        //Person p = new Person { Name = "Jim" };
        //Student s = (Student)p;
        //Console.WriteLine(s.Name);

        object t = 2;
        int i=(int)t;
        Console.WriteLine(i);
    }
    


    

}
hexllo的主页 hexllo | 菜鸟二级 | 园豆:397
提问于:2013-01-29 14:09
< >
分享
最佳答案
1

这个怎么能一样呢  object t = 2; int i=(int)t;   这个 是装箱 和 拆箱。

你那个 只能是 子类转父类

 
收获园豆:3
Qlin | 老鸟四级 |园豆:2403 | 2013-01-29 14:23
其他回答(3)
-2

谁告诉你int继承自object的?

收获园豆:1
顾晓北 | 园豆:10219 (专家六级) | 2013-01-29 14:24

object是所有类的祖先啊,老师说的

支持(0) 反对(0) hexllo | 园豆:397 (菜鸟二级) | 2013-01-29 14:25

@hexllo: 那你是认为int是一个类了?

支持(0) 反对(0) 顾晓北 | 园豆:10219 (专家六级) | 2013-01-29 14:26

@顾晓北: 唉..看了一下,int是个结构,Int32...

支持(0) 反对(0) hexllo | 园豆:397 (菜鸟二级) | 2013-01-29 16:02
  • 所有结构都直接继承自 System.ValueType,后者继承自 System.Object

支持(0) 反对(0) 焚寂 | 园豆:229 (菜鸟二级) | 2013-05-24 17:02

@焚寂: 我只看到这些:

public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
支持(0) 反对(0) 顾晓北 | 园豆:10219 (专家六级) | 2013-05-24 17:38

@hexllo: 

类、结构、枚举都直接或间接继承自 System.Object。

支持(0) 反对(0) 焚寂 | 园豆:229 (菜鸟二级) | 2013-05-24 17:56

@顾晓北: 

参见:MSDN => 结构(C# 编程指南)

        《C#语言规范》 => 结构

支持(0) 反对(0) 焚寂 | 园豆:229 (菜鸟二级) | 2013-05-24 18:18

@焚寂: 看了下,所有结构都直接继承自 System.ValueType,后者继承自 System.Object

是这样的,但是如果是这样的话,有两个问题:

1.Int32为什么没看到所继承的这个System.ValueType?

2.那这不是说所有都是类?如果这样还分什么值类型,引用类型?Object肯定是引用类型吧?那也就没有所谓的装箱拆箱了。

支持(0) 反对(0) 顾晓北 | 园豆:10219 (专家六级) | 2013-05-27 09:14
0

t=2时确实可以正常编译,但是t=‘a’ 时也是会会异常啊。父类是不能转化成子类的。

望馨 | 园豆:234 (菜鸟二级) | 2013-01-29 14:28
1

object t = 2;
       
int i=(int)t;
这是装箱、拆箱,跟继承没关系。

收获园豆:1
Launcher | 园豆:45045 (高人七级) | 2013-01-29 15:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册