私はC#を使ってゲームを書いていますが、関数がデリゲートを取る場合が多く、デリゲートを作成してキャッシュする代わりに関数名を誤って渡してしまいました。これにより、これらの関数の呼び出しごとにデリゲートオブジェクトが作成されます。このオブジェクトは、関数が返されるとすぐにガーベッジになります。C#で暗黙的な委譲の推論を回避または検出する方法はありますか?
私はこのミスを犯したすべての場所を見つけるしたい、と私は彼らのために探しているすべてのファイルのすべての行を読んで避けることを好むと思います(年は、コードの価値があります)。私は、VBがどのように「オプション厳密」を持っているかを見てきました。これは、C#にその機能があっても、私にはうまくいくと思われるオブジェクトの暗黙的な構築を無効にします。私はコンパイラの警告オプションも見直しましたが、どちらも助けてくれないようです。
は、私はゴミを避けるためにコールバックをキャッシュ/作成する必要がどこに見つけることができるように、暗黙的なデリゲート推論によって作成されたこれらのオブジェクトを識別するための任意の合理的に便利な方法はありますか?
あなたはたとえば、Visual Studioの正規表現検索はそれらを見つけるかもしれない場所を、提供することができますいくつかのコード例がありますか? – mellamokb
デリゲートを受け入れるメソッド/関数を見つけたら右クリック→参照の検索(ただし、これは手動で各呼び出しをチェックすることになります)。 –
これは実際にあなたに問題を引き起こしているという証拠はありますか?大部分の時間は、明示的なキャッシュの代わりにメソッドグループの変換を使用することの可読性の利点と比較して、パフォーマンスの低下はごくわずかです。 –