我正在使用 C# 编写游戏,并且发现了许多情况,其中一个函数接受一个委托,而我无意中传递了一个函数名称,而不是创建和缓存一个委托以用作参数。这会导致为每次调用这些函数创建一个委托对象,然后在函数返回时立即成为垃圾。
我想找到我犯了这个错误的所有地方,并且我宁愿避免阅读每个文件的每一行来寻找它们(有很多年的代码)。我看到 VB 有一个“选项严格”,它将禁用对象的隐式构造,如果 C# 具有该功能,我认为这对我有用,但我不认为它有。我还查看了编译器警告选项,但它们似乎也无济于事。
是否有任何相当方便的方法来识别隐式委托推断创建的这些对象,以便我可以找出我需要在哪里创建/缓存回调以避免垃圾?