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);
}
}
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’ 时也是会会异常啊。父类是不能转化成子类的。