freedom_wings 2015-12-21 08:58 采纳率: 21.1%
浏览 1735

关于c#的特性,反射,委托与回调方法的问题

1.c#的特性用来有什么用?难道只是为了用反射来检索?但是我看的书上用反射检索出特性也没用来干什么,求解

2.反射,我的理解是可以加载了一个程序集之后获取其中定义的类型,并用其中定义的类型创建对象,使用其属性,字段,方法。这样是不是可以跨程序获取变量(或者说,跨程序集是不是即跨程序,打个比方,若获取了microsoft word的程序代码,金山的wps也可以在代码中加载word的程序并获取和使用其中定义的方法?)

3.回调方法是不是都要通过委托来实现?

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-12-21 10:31
    关注

    (1)主要就是为了反射。书上举例可能你感觉不到实际用途,那么请看几个真实的案例。
    控件上用[Default(值)]修饰一个属性,于是VS IDE可以用它实现属性表中的“恢复默认值”功能。
    [Editor]特性,IDE用它产生一个自定义的编辑器。
    EF中的[Key]特性,使得数据库生成器可以产生对应的数据库的列,并且设置为主键
    MVC中的[Post]使得这个方法在http post请求发出的时候才响应。
    (2)是跨程序集。注意,不是跨进程。而跨程序是一个模糊的说法。程序集是指一个程序运行实例中加载的不同的模块,程序域/进程则是程序运行的不同实例。
    (3)是的。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog