假设我有这门课:
public class someClassA
{
Connector connector;
public void SubscribeToEvent(IList<string> stockNames)
{
connector.OnEventReceived += SomeReceiverMethod;
}
private void SomeReceiverMethod(ReceivedData receivedData)
{
Console.WriteLine(receivedData);
}
}
我想做的是在订阅的其他类中获取收到的数据
public class someClassB
{
var classA = someClassA;
someClassA.SomeSender += SomeReceiver;
}
我怎样才能从
SomeSender
实现someClassB
?
有两种基本方法
private void SomeReceiverMethod(ReceivedData receivedData)
{
DataReceived?.Invoke(this, receivedData);
}
public event EventHandler<ReceivedData> DataReceived;
// EventReceivedDelegate needs to be the same type as OnEventReceived
public event EventReceivedDelegate EventReceived{
add => connector.OnEventReceived += value;
remove => connector.OnEventReceived -= value;
}
前者更灵活,因为它允许您在引发下一个事件之前对数据进行一些处理,以及更改类型等。但它需要更多代码