开发者

VB.NET to C# conversion -- Interface Event declaration for non-EventHandler events

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;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜