Ran into this while converting a VB.NET interface to C#; the VB version defines an event which doesn't conform to the typical (object sender, EventArgs e) signature:
VB
Public Class SomeType
' Does *NOT* inherit from EventArgs
End Class
Public Interface ISomething
Public Event SomeEvent(sender as Object, value as SomeType)
End Interface
What's the C# equivalent for ISomething? My attempts so far have failed to compi开发者_JAVA百科le:
You'll need a delegate type declaration:
public delegate void SomeEventHandler(object sender, SomeType value)
public class SomeType
{
}
public interface ISomething
{
public event SomeEventHandler SomeEvent;
}
Or in .NET 3.5 you could use the built-in Action type:
public class SomeType
{
}
public interface ISomething
{
public event Action<object, SomeType> SomeEvent;
}
精彩评论