在c#中通过属性公开委托
本文关键字:属性 | 更新日期: 2023-09-27 18:01:45
如何通过属性暴露委托?我正在通过我的类公开一个委托,它是第三方类的成员。
public CardInformationAvailable OnDataRecieve //CardInformationAvailable is a delegate type
{
set
{
_cardReaderBase.OnDataReady += value; // OnDataReady is a delegate of type
//CardInformationAvailable
// Where will i call -=value?
}
}
对这个问题不是100%确定,但是如果您想通过类公开,可以用这种方式包装事件。但正如其他人提到的,您可以直接将事件添加到_cardReaderBase?
public CardReader
{
public event OnDataReady;
private CardReaderBase _cardReaderBase;
public event OnDataReady OnDataReadyEvent
{
add
{
_cardReaderBase.OnDataReady += value;
}
remove
{
_cardReaderBase.OnDataReady -= value;
}
}
}
您可以将if
条件设置为Null参数。换句话说,就像这样:
public CardInformationAvailable OnDataRecieve
{
set
{
if(value == null)
_cardReaderBase.OnDataReady -= value;
else
_cardReaderBase.OnDataReady += value;
}
}