代码托管,使用add前缀 出现的问题。

auly403 2014-06-14 11:01:42

声明:
namespace COMKERNELLib
{
[ComVisible(false)]
[TypeLibType(16)]
public delegate void _IKernelEvents_OnTextOutEventHandler(string WindowCaption, string logText, int NoEndOfLine);
}

class COMKERNELLib.KernelClass : System.Object, COMKERNELLib.IKernel, COMKERNELLib.Kernel, COMKERNELLib._IKernelEvents_Event;
初始化:
public static void Initialize()
{
CTKernel = new KernelClass();
eTextOutHandler = new _IKernelEvents_OnTextOutEventHandler(BaseTest.OnTextOut);
eTestDoneHandler = new _IKernelEvents_TestDoneEventHandler(CTSTest.OnTestDone);
CTKernel.add_OnTextOut(eTextOutHandler);
// CTKernel.add_TestDone(eTestDoneHandler);
}
错误:

Error 8 'COMKERNELLib._IKernelEvents_Event.OnTextOut.add': cannot explicitly call operator or accessor F:\ATMApplication\MyTest.cs 68

...全文
73 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jointan 2014-06-14
什么get_,set_,add_,remove_ ,item 这些东西最好不要去较劲. 以常用约定分析,你的代码似乎 CTKernel.add_OnTextOu等同于 CTKerne.TextOut+=new _IKernelEvents_OnTextOutEventHandler(BaseTest.OnTextOut); C#的语法就这样的,刨根的可能就把什么存取器之类的带出来了,而且从原理让认为编译器应该支持,实际上支不支持,每个版本的兼容语法没人知道,所以但凡未公布的函数,最好别用.
回复
auly403 2014-06-14
新手第一次用C#, 请指条明路.
回复
jointan 2014-06-14
你就老老实实的+=不就完了
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.