代码之家  ›  专栏  ›  技术社区  ›  STW

VB.NET到C#转换-非EventHandler事件的接口事件声明

  •  2
  • STW  · 技术社区  · 16 年前

    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
    

    这东西的C#等价物是什么?到目前为止,我的尝试未能编译:

    1 回复  |  直到 16 年前
        1
  •  9
  •   Jon Skeet    16 年前

    您需要一个委托类型声明:

    public delegate void SomeEventHandler(object sender, SomeType value)
    
    public class SomeType
    {
    }
    
    public interface ISomething
    {
        public event SomeEventHandler SomeEvent;
    }
    

    能够 使用内置的操作类型:

    public class SomeType
    {
    }
    
    public interface ISomething
    {
        public event Action<object, SomeType> SomeEvent;
    }