C#反射从入门到放弃(这部分遇到的新东西太多了让人接受不能)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#反射从入门到放弃(这部分遇到的新东西太多了让人接受不能),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1339字,纯文字阅读大概需要2分钟。
内容图文
首先,我们需要知道type,type是类型的类型(笑
官方点的说法是,BCL声明了一个Type抽象类,它被设计用来包含类型的特性,使用这个类的对象(抽象类的对象?这显然是错误的,但是这里用的其实是Type的派生类的对象)能让我们获得程序使用的类型的信息。
得到type有两种方式
方式1:
方式2:无需实例对象a直接写
var type1 = typeof(A);
两种方式的得到的type1和type2这两个引用是一样的,因为都是对A这个类获得其type
我们能通过type1得到什么呢?
(这只是显示的一部分,还有很多东西没有显示出来)
返回成员:
GetMember():GetMember是单数,单数就是你要指定一个名字,才能返回
GetMembers():GetMembers是复数,用于取得该类的所有成员的信息
返回方法:
GetMethod():GetMethod是单数,单数就是你要指定一个名字,才能返回
GetMethods():GetMethods是复数,用于取得该类的所有方法的信息
下面的同理...
返回内嵌类型:
返回属性:
等等...
你拿到这些东西(属性,方法)后还可以调用它!
举例:
注意这里var的类型是PropertyInfo,里面一定包含了大量的东西!
10.png)
我们可以直接用Property.的方式,调用get方法和set方法了。
SetValue([我希望对a操作,a是A类的实例],[赋值的string是aaa],[忽略第三个参数给null即可] );
以上关键代码翻译:
var type1 = typeof(A);
创建一个Type类(的派生类)的实例type1得到A类的特性,
var Property = type1.GetProperty("MyProperty");
在type1上拿到A类中一个叫MyProperty的属性
var a = new A();
创建一个A类型的实例a
Property.SetValue(a, "aaa", null);
给a这个实例的MyProperty属性,赋值"aaa"
内容总结
以上是互联网集市为您收集整理的C#反射从入门到放弃(这部分遇到的新东西太多了让人接受不能)全部内容,希望文章能够帮你解决C#反射从入门到放弃(这部分遇到的新东西太多了让人接受不能)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。