コードインスペクション:明示的なデリゲート作成式は冗長なものです
たとえば、イベントハンドラーを追加した結果、冗長なデリゲートコンストラクター呼び出しが発生することがあります。
MyHandler += new EventHandler(MyMethod);
以下では、デリゲート変数 ValueChanged の型をその宣言から推論することができます。 コードを短くするために、ReSharper は冗長な明示的デリゲートのコンストラクター呼び出しを削除することを提案します:
internal class EventTest
{
protected event EventHandler ValueChanged;
protected EventTest()
{
ValueChanged += new EventHandler(HandleValueChanged);
}
private void HandleValueChanged(object sender, EventArgs e)
{
// ...
}
protected virtual void OnMyValueChanged()
{
ValueChanged?.Invoke(this, EventArgs.Empty);
}
}
internal class EventTest
{
protected event EventHandler ValueChanged;
protected EventTest()
{
ValueChanged += HandleValueChanged;
}
private void HandleValueChanged(object sender, EventArgs e)
{
// ...
}
protected virtual void OnMyValueChanged()
{
ValueChanged?.Invoke(this, EventArgs.Empty);
}
}
2026 年 6 月 12 日