You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在F#中定义可与C#互用的自定义RoutedEventArgs?

F#实现可跨C#/F#使用的自定义RoutedEventArgs

以下是对应你C#版本的F#实现,完全兼容C#代码调用,同时能在F#后端正常接收WPF事件传递的参数:

open System.Windows

type NewTranscriptEventArgs(routedEvent: RoutedEvent, appendText: string) =
    inherit RoutedEventArgs(routedEvent)
    // 私有只读字段,对应C#中的readonly成员
    let _appendText = appendText
    // 公共只读属性,C#可直接访问
    member this.AppendText = _appendText

关键说明:

  • 继承与构造函数:直接继承RoutedEventArgs,构造函数传入RoutedEvent参数并调用基类构造,和C#版本的逻辑完全对齐
  • 成员可见性:F#默认类和成员为public,无需额外标记即可被C#项目引用访问
  • 只读属性:通过let绑定私有字段,配合只读成员实现和C#版本一致的只读属性行为

使用注意:

  1. 确保包含该F#类的项目被C#项目引用,或两者处于同一解决方案
  2. F#后端的NewTranscript命令参数需指定为NewTranscriptEventArgs类型,才能正确接收InvokeCommandAction传递的事件参数

内容的提问来源于stack exchange,提问作者Alan Wayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:05:22