1.c#的特性用来有什么用?难道只是为了用反射来检索?但是我看的书上用反射检索出特性也没用来干什么,求解
2.反射,我的理解是可以加载了一个程序集之后获取其中定义的类型,并用其中定义的类型创建对象,使用其属性,字段,方法。这样是不是可以跨程序获取变量(或者说,跨程序集是不是即跨程序,打个比方,若获取了microsoft word的程序代码,金山的wps也可以在代码中加载word的程序并获取和使用其中定义的方法?)
3.回调方法是不是都要通过委托来实现?
1.c#的特性用来有什么用?难道只是为了用反射来检索?但是我看的书上用反射检索出特性也没用来干什么,求解
2.反射,我的理解是可以加载了一个程序集之后获取其中定义的类型,并用其中定义的类型创建对象,使用其属性,字段,方法。这样是不是可以跨程序获取变量(或者说,跨程序集是不是即跨程序,打个比方,若获取了microsoft word的程序代码,金山的wps也可以在代码中加载word的程序并获取和使用其中定义的方法?)
3.回调方法是不是都要通过委托来实现?
(1)主要就是为了反射。书上举例可能你感觉不到实际用途,那么请看几个真实的案例。
控件上用[Default(值)]修饰一个属性,于是VS IDE可以用它实现属性表中的“恢复默认值”功能。
[Editor]特性,IDE用它产生一个自定义的编辑器。
EF中的[Key]特性,使得数据库生成器可以产生对应的数据库的列,并且设置为主键
MVC中的[Post]使得这个方法在http post请求发出的时候才响应。
(2)是跨程序集。注意,不是跨进程。而跨程序是一个模糊的说法。程序集是指一个程序运行实例中加载的不同的模块,程序域/进程则是程序运行的不同实例。
(3)是的。