[英]Does not implement interface member Error
這是我的代碼,VS2012 C#Express抱怨PISDK._DEventPipeEvents接口中兩個成員的非實現,這里很快粘貼:
namespace PISDK
{
[Guid("9E679FD2-DE8C-11D3-853F-00C04F45D1DA")]
[InterfaceType(2)]
[TypeLibType(4096)]
public interface _DEventPipeEvents
{
[DispId(2)]
void OnNewValue();
[DispId(1)]
void OnOverflow(object vtEvent, OverflowCauseConstants Cause);
}
}
這是我的代碼:
class PointListEventPipeEventReceiver : PISDK._DEventPipeEvents
{
private PISDK.EventPipe eventPipe;
public PointListEventPipeEventReceiver(PISDK.EventPipe eventPipe)
{
this.eventPipe = eventPipe;
}
public void PISDK._DEventPipeEvents.OnNewValue()
{
Console.WriteLine("New value event");
handleNewValue(eventPipe);
}
public void PISDK._DEventPipeEvents.OnOverFlow(object vtEvent, PISDK.OverflowCauseConstants Cause)
{
throw new NotImplementedException();
}
private void handleNewValue(PISDK.EventPipe eventPipe)
{
Console.WriteLine("Handling new value");
Array eventObjs = eventPipe.TakeAll();
Console.WriteLine("eventObjs.Length==" + eventObjs.Length);
foreach (PISDK.PIEventObject piEventObj in eventObjs)
{
Console.WriteLine(piEventObj.EventData as PISDK.PointValue);
}
}
}
我在這里不知所措,任何幫助都很好。
您的實現使用OnOverFlow
,在接口中使用大寫字母F
而不是小寫字母。 該方法應該被稱為OnOverflow
。
除了在“溢出”中出現錯誤外,看起來您正在嘗試將public
訪問修飾符應用於顯式接口成員實現。 您可以隱式地將該成員實現為公共成員,也可以顯式實現,但不能同時實現兩者。
隱式實施:
public void OnOverflow(object vtEvent, PISDK.OverflowCauseConstants Cause)
{
throw new NotImplementedException();
}
明確的實施:
void PISDK._DEventPipeEvents.OnOverflow(object vtEvent, PISDK.OverflowCauseConstants Cause)
{
throw new NotImplementedException();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.