代码之家  ›  专栏  ›  技术社区  ›  TimothyP

使用F代码中C定义的扩展方法

  •  11
  • TimothyP  · 技术社区  · 16 年前

    我为不同的类定义了一系列扩展方法 在图书馆里。我现在正在写一些F代码,而不是重写 我只想在我的f代码中使用现有的扩展方法。

    我添加了对库的引用,并使用了 open语句导入命名空间, 但是扩展方法不能出现在f中#

    2 回复  |  直到 15 年前
        1
  •  18
  •   Mehrdad Afshari    15 年前

    更新:

    在当前版本的f_中,您只需通过添加

    open TheNamespaceOfExtensionMethod
    

    到你的源文件(就像你在c中用 using 指令)并简单地调用扩展方法,就好像它是一个普通的实例方法一样。

    顺便说一句,您可以像普通静态方法一样直接调用它们,如果需要的话,可以将对象引用作为第一个参数传递,而不需要任何指令。扩展方法只是一个用 ExtensionAttribute 在引擎盖下面。

    原始答案(在f 2010测试版之前;不再是真的,正如dykam指出的那样):

    我认为f不支持扩展方法。您可以像普通静态方法一样直接调用它们,并将对象引用作为第一个参数传递。

        2
  •  9
  •   Community CDub    8 年前

    下一版本的f_中将支持“导入”c/vb扩展方法。

    也见

    F# extension methods in C#

    关于这个话题的更多细节。