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

问题在下图中,另外在图后我附上代码,供大家调试..   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); } }
宝慕林4294392
浏览 539回答 12
12回答

牧羊人nacy

这个怎么能一样呢  object t = 2; int i=(int)t;   这个 是装箱 和 拆箱。 你那个 只能是 子类转父类  

qq_笑_17

谁告诉你int继承自object的?

MMMHUHU

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

慕标琳琳

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

慕斯709654

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

缥缈止盈

所有结构都直接继承自 System.ValueType,后者继承自 System.Object。

弑天下

@焚寂: 我只看到这些: public struct Int32 : IComparable, IFormattable, IConvertible, IComparable, IEquatable

12345678_0001

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

慕侠2389804

@顾晓北:  参见:MSDN => 结构(C# 编程指南)         《C#语言规范》 => 结构

绝地无双

t=2时确实可以正常编译,但是t=‘a’ 时也是会会异常啊。父类是不能转化成子类的。
打开App,查看更多内容
随时随地看视频慕课网APP