Подскажите, как можно разрешить следующую ситуацию?
Есть код (С#)
using System;
namespace SampleNamespace
{
/// <summary>
/// Summary description for Sample.
/// </summary>
public class Sample : ISample
{
public Sample()
{
//
// TODO: Add constructor logic here
//
}
public event SampleHandler SampleEvent;
private void SomeSubroutine(int index)
{
System.Delegate[] invklist = SampleEvent.GetInvocationList();
//.....
//.....
}
}
public delegate void SampleHandler(object sender, System.EventArgs e);
public interface ISample
{
event SampleHandler SampleEvent;
}
}
При наследовании интерфейса
ISample классом
Sample событие
SampleEvent имеет тип
SampleHandler, что и надо для последующей обработки.
А вот, то же, но на VB.Net:
Imports System
Namespace SampleNamespace
Public Delegate Sub SampleHandler(ByVal sender As Object, ByVal e As System.EventArgs)
Public Interface ISample
Event SampleEvent As SampleHandler
End Interface
Public Class Sample
Implements ISample
Public Event SampleEvent(ByVal sender As Object, ByVal e As System.EventArgs) Implements ISample.SampleEvent
End Class
End Namespace
Т.е при наследовании интерфейса
ISample классом
Sample IntellySense автоматически создает реализацию события
SampleEvent тип которого уже не делегат
SampleHandler.
Возможно я не так преобразовал код в VB.Net.
Что можно предпринять?