1反射:反射net中重机制通反射运行时获net中类型包括类结构委托枚举成员包括方法属性事件构造函数等反射类型指掌
面演示反射实例
(1)新建类库项目解决方案单击右键选择添加新建项目弹出框中选择类库面名字栏中输入classlib然删class1类新添加类classperson添加代码:
namespace classlib
{
public class classperson
{
public classperson()this(null)
{
}
public classperson(string strname)
{
name strname
}
private string name
private string sex
private int age
public string name
{
get { return name }
set { name value }
}
public string sex
{
get { return sex }
set { sex value }
}
public int age
{
get { return age }
set { age value }
}
public void sayhello()
{
if (nullname)
consolewriteline(hello world)
else
consolewriteline(hello + name)
}
}
}
添加完编译生成会类库项目中bin\debug中classlibdll文件然添加控制台应程序引入systemreflaction命名空间添加代码:
using system
using systemcollectionsgeneric
using systemlinq
using systemtext
using systemreflection添加反射命名空间
namespace consoleapplication4
{
public class program
{
static void main(string[] args)
{
consolewriteline(列出程序集中类型)
assembly ass assemblyloadfrom(classlibdll)
type[] mytype assgettypes()
type classperson null
foreach (type p in mytype)
{
consolewriteline(pname)
if (pnameclassperson)
{
classperson p
}
}
consolewriteline(列出classpersonl类中方法)
methodinfo[] md classpersongetmethods()
foreach(methodinfo m in md)
{
consolewriteline(mname)
}
consolewriteline(实例化classperson类调sayhello方法)
object obj activatorcreateinstance(classperson)
object objnameactivatorcreateinstance(classperson飞鹰)
methodinfo mysayhello classpersongetmethod(sayhello)
mysayhelloinvoke(obj null)参数构造函数
mysayhelloinvoke(objname null)参构造函数
consolereadkey()
}
}
}
运行结果:
列出程序集中类型
classperson
列出classpersonl类中方法
get_name
set_name
get_sex
set_sex
get_age
set_age
sayhello
tostring
equals
gethashcode
gettype
实例化classperson类调sayhello方法
hello world
hello飞鹰
2using作
(1)引入命名空间:using system
(2)using名
格式:using 名包括详细命名空间信息具体类型
例:两命名空间(namespace1namespace2)里myclass类时样引入命名空间
using aclassnamespace1myclass
using bclassnamespace2myclass
实例化时:
aclass my1new aclass
bclass my2new bclass
(3)using定义范围
时释放资源范围结束时处理象例:
using(class1 cls1new class1())
{
}
代码段结束时会触发cls1dispose方法释放资源
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档