如何在C#中避免或检测隐式委托推理?
我正在使用C#编写游戏,并且发现了一些函数需要委托的情况,我无意中传递了一个函数名,而不是创建和缓存委托以用作参数.这会导致为每个对这些函数的调用创建一个委托对象,然后在函数返回时立即变为垃圾.
我想找到我犯了这个错误的所有地方,我宁愿避免阅读每个文件的每一行寻找它们(有多年的代码值).我看到VB有一个’选项严格’会禁用隐式构造的对象,如果C#有这个功能,我觉得这对我有用,但我认为不行.我还审查了编译器警告选项,它们似乎都没有帮助. 是否有任何合理方便的方法来识别由隐式委托推理创建的这些对象,以便我可以找到我需要创建/缓存回调以避免垃圾的位置? 解决方法
简而言之,您的问题是“如何找到所有方法组转换?”
我们目前正在开发一个代号为Roslyn的项目,它允许您使用C#编译器和IDE使用的相同语义分析引擎.它将公开语言的语法模型,然后提供语义分析API,通过它您可以提出语义分析器的问题. 使用Roslyn,您可以将所有代码编译为语法树,然后搜索每个表达式的语法树.将有一个API,允许您确定表达式是否转换为任何内容,如果是,转换分析器如何对转换进行分类. 我们目前处于“社区技术预览”阶段;我们有一个初步的实施,但它还没有完全功能.我不记得方法组转换分析器是否在CTP版本中实现. 试一试,如果您对此有任何反馈,我们很乐意听取您对Roslyn论坛的看法. 详细信息: http://msdn.microsoft.com/en-us/roslyn (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 如何随机选择一个字符串
- macos – NSSplitView启动大小(故事板和Swift)的麻烦
- Flash XMLUI format
- AJAX参数传递时候如何使用JSON
- ruby-on-rails – 带有tr的SecureRandom字符串翻译显示下划
- Shape Drawable----This is a generic shape defined in XM
- 论文阅读笔记 - Omega: flexible,scalable schedulers for
- reactjs – 在React中,setState和forceUpdate之间有什么区别
- flex缓存客户端
- 有没有办法在用户安装Ruby gem后打印消息?