如果我有一个通过(例如)FrobbingEventArgs 引发事件的类,我是否可以使用采用 EventArgs 的方法来处理它?
这是一些代码:
class Program
{
static void Main(string[] args)
{
Frobber frobber = new Frobber();
frobber.Frobbing += FrobberOnFrobbing;
frobber.Frob();
}
private static void FrobberOnFrobbing(object sender,
EventArgs e)
{
// Do something interesting. Note that the parameter is 'EventArgs'.
}
}
internal class Frobber
{
public event EventHandler<FrobbingEventArgs> Frobbing;
public event EventHandler<FrobbedEventArgs> Frobbed;
public void Frob()
{
OnFrobbing();
// Frob.
OnFrobbed();
}
private void OnFrobbing()
{
var handler = Frobbing;
if (handler != null)
handler(this, new FrobbingEventArgs());
}
private void OnFrobbed()
{
var handler = Frobbed;
if (handler != null)
handler(this, new FrobbedEventArgs());
}
}
internal class FrobbedEventArgs : EventArgs { }
internal class FrobbingEventArgs : EventArgs { }
我问的原因是 ReSharper 似乎对 XAML 中的等效项有问题(看起来像),我想知道这是 ReSharper 中的错误,还是我对 C# 的理解有误。