如何通过属性公开委托?我通过我的班级揭露了一名代表,该代表是第三方课程的成员。
public CardInformationAvailable OnDataRecieve //CardInformationAvailable is a delegate type
{
set
{
_cardReaderBase.OnDataReady += value; // OnDataReady is a delegate of type
//CardInformationAvailable
// Where will i call -=value?
}
}
答案 0 :(得分:4)
对这个问题不是100%肯定,但如果你想通过你的课程公开,你可以用这种方式包装事件。但正如其他人所提到的,您可以直接将事件添加到_cardReaderBase?
public CardReader
{
public event OnDataReady;
private CardReaderBase _cardReaderBase;
public event OnDataReady OnDataReadyEvent
{
add
{
_cardReaderBase.OnDataReady += value;
}
remove
{
_cardReaderBase.OnDataReady -= value;
}
}
}
答案 1 :(得分:-1)
您可以为Null参数添加if
条件。换句话说就是这样:
public CardInformationAvailable OnDataRecieve
{
set
{
if(value == null)
_cardReaderBase.OnDataReady -= value;
else
_cardReaderBase.OnDataReady += value;
}
}