从C#回调到F#

从C#回调到F#,c#,f#,C#,F#,我有一个F#类库: 命名空间FsharpTestSystem 开放系统 开放系统 开放式日志实体 开放TcikoteEntity 键入TestCallback()= 成员this.LoggerOutput()=Logger.Info(“F#”) 成员this.OnQuote(q:TCQuote)=Console.WriteLine(q.ToString()) 将这个F#程序集的引用添加到C#项目中,我已经测试过可以从C#调用LoggerOutput fine。但是,如果我试图让C#事件回调在F

我有一个F#类库:

命名空间FsharpTestSystem
开放系统
开放系统
开放式日志实体
开放TcikoteEntity
键入TestCallback()=
成员this.LoggerOutput()=Logger.Info(“F#”)
成员this.OnQuote(q:TCQuote)=Console.WriteLine(q.ToString())
将这个F#程序集的引用添加到C#项目中,我已经测试过可以从C#调用LoggerOutput fine。但是,如果我试图让C#事件回调在F#中执行,我会在下面的行中得到一个错误:

从C#开始:

使用FsharpTestSystem;
公共代表无效报价更改事件(TCQ);
事件QuoteChangeEvent on QuoteChange;
TestCallback fsts=新的TestCallback();
api.MAPI.OnQuoteChange+=fsts.OnQuote();//这不管用
fsts.LoggerOutput();//这个很好用

您正在调用您的方法,该方法将尝试使用OnQuote返回的任何内容作为事件处理程序

OnQuote是事件处理程序,请尝试:-

api.MAPI.OnQuoteChange += fsts.OnQuote;