3个回答
展开全部
举个简单但不十分合适的例子
世界上有很多类动物,人类、狗、猫
也就是说我们定义了人类、狗、猫这些类,那我们就可以访问这些类的属性和函数
用这些类,我们可以定义如下
人类 你
或者 人类 我
然后就可以用函数,你.吃饭()
是的,这就是普通的类
但是有时候我们需要知道:你是什么?
这样的问题字面上很好解决,你是人类
所以type类就应运而生,type类说明了一个类的类名以及该类的许多相关的属性,比如通过type类找到该类型的方法名——吃饭等等
总而言之,它给出了一个类的相关信息,仅此而已
type类主要用于类型反射中,在泛型设计中也会出现,例如List<T>类就是很典型的泛型
程序中的例子比如说,在一个List<Object>中存储了各种人类的实例,各种狗的实例等等
要刷选出人类的话只要
foreach(var obj in list)
{
if(obj is 人类)输出;
}
还有的例子就是通过反射创建一个实例类
class A
{
A(){}
}
class B
{
B()
{
var type=TypeOf(A);
var obj = type.Assembly.CreateInstance(type);
//实例obj就可以强转为A
}
}
世界上有很多类动物,人类、狗、猫
也就是说我们定义了人类、狗、猫这些类,那我们就可以访问这些类的属性和函数
用这些类,我们可以定义如下
人类 你
或者 人类 我
然后就可以用函数,你.吃饭()
是的,这就是普通的类
但是有时候我们需要知道:你是什么?
这样的问题字面上很好解决,你是人类
所以type类就应运而生,type类说明了一个类的类名以及该类的许多相关的属性,比如通过type类找到该类型的方法名——吃饭等等
总而言之,它给出了一个类的相关信息,仅此而已
type类主要用于类型反射中,在泛型设计中也会出现,例如List<T>类就是很典型的泛型
程序中的例子比如说,在一个List<Object>中存储了各种人类的实例,各种狗的实例等等
要刷选出人类的话只要
foreach(var obj in list)
{
if(obj is 人类)输出;
}
还有的例子就是通过反射创建一个实例类
class A
{
A(){}
}
class B
{
B()
{
var type=TypeOf(A);
var obj = type.Assembly.CreateInstance(type);
//实例obj就可以强转为A
}
}
展开全部
执行反射用的到,通过typeof()、object.GetType()可以获得对象的类型
使用type对象可以反射出类型的属性、方法、特性等,并可以调用
Class1 c = new Class1();
Type t = c.GetType();
MethodInfo[] m= t.GetMethods();
foreach (MethodInfo s in m)
{
MessageBox.Show(s.Name);
}
//反射出c对象所有方法的名称
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |