相关疑难解决方法(0)

你什么时候用反射?模式/反模式

我理解反射API(在c#中),但我不确定在什么情况下我会使用它.有哪些模式 - 使用反射的反模式?

c# reflection

30
推荐指数
6
解决办法
2万
查看次数

用例反射

最近我和一位同事讨论了C++并且遗憾地说,没有办法用类字段的名字取一个字符串并用该名称提取字段; 换句话说,它缺乏反思.他给了我一个莫名其妙的表情,并询问何时有人需要做这样的事情.

除了"嘿,我现在需要立即行动"之外,我的头脑中没有一个好的答案.所以我坐下来想出了一些我用各种语言反射实际完成的事情.不幸的是,我的大多数例子来自我在Python中的Web编程,我希望这里的人会有更多的例子.这是我提出的清单:

  1. 给定一个包含
    x ="Hello World!" 等行的配置文件
    y = 5.0
    动态设置某个config对象的字段等于该文件中的值.(这是我希望我能用C++做的,但实际上做不到.)

  2. 排序对象列表时,根据配置文件或Web请求中属性名称的任意属性进行排序.

  3. 编写使用网络协议的软件时,反射允许您根据该协议的字符串值调用方法.例如,我编写了一个IRC机器人,它将转换
    !some_command arg1 arg2
    为方法调用actions.some_command(arg1, arg2)并打印返回IRC通道的任何函数.

  4. 当使用Python的__getattr__函数(类似于Ruby/Smalltalk中的method_missing)时,我正在使用一个包含大量统计信息的类,例如late_total.对于每个统计数据,我希望能够添加_percent以将该统计数据作为我计算的总数的百分比(例如,stats.late_total_percent).反思使这很容易.

那么这里的任何人都可以从他们自己的编程经验中给出任何反映有用的例子吗?下一次同事问我为什么"想要做那样的事情"我想做好准备.

reflection

21
推荐指数
1
解决办法
6236
查看次数

标签 统计

reflection ×2

c# ×1