
不过,我不禁想到这样的代码真的是“欺骗”,而不是使用提供的语言结构来实现给定的结束,它允许你规避它们.
这种代码在多大程度上是可以接受的?有什么风险?这种方法的合法用途是什么?
解决方法 有时使用反射可能是一个黑客,但很多时候它只是最美妙的代码工具.看看.Net属性网格 – 任何使用Visual Studio的人都会熟悉它.您可以将其指向任何对象,它将生成一个简单的属性编辑器.这使用反射,事实上VS的大部分工具箱都是.
看单元测试 – 它们通过反射加载(至少在NUnit和MSTest中).
反射允许来自静态语言的动态样式行为.
一个真正需要的是鸭子打字–C#编译器已经支持这一点:你可以先看看任何看起来像IEnumerable的东西,不管它是否实现了接口.您可以对任何具有名为Add的方法的类使用C#3集合语法.
在需要动态样式行为的地方使用反射 – 例如,您有一组对象,并且要检查每个对象的相同属性.
动态类型的风险是相似的 – 编译时间异常成为运行时间.你的代码不是“安全”,你必须做出相应的反应.
.Net反射代码非常快,但不如显式调用那么快.
总结以上是内存溢出为你收集整理的C#中反思的理由全部内容,希望文章能够帮你解决C#中反思的理由所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)