首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您能定义与C#兼容的无命名空间扩展方法吗?

您能定义与C#兼容的无命名空间扩展方法吗?
EN

Stack Overflow用户
提问于 2015-03-14 17:42:09
回答 1查看 112关注 0票数 1

我知道您可以在c#中定义空的命名空间扩展方法,您能在F#中定义相同的方法供C#使用吗?我遵循了关于获得C#兼容的扩展方法的一般文章,但我没有找到1-1转换的最后一步。

这不是重复,我正在寻找定义全局命名空间中的扩展方法的方法,就C#而言,而不是如何在F#中定义C#可以看到的常规扩展方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-15 08:00:42

您肯定可以在F#中创建这样的扩展方法。这可以通过全球命名空间来实现,它利用在任何名称空间之外声明的F#模块进入这个默认的全局名称空间的特性,如下所示:

代码语言:javascript
运行
复制
// Tested under Visual Studio 2013 Premium/F# 3.1:

// F# library module
[<System.Runtime.CompilerServices.Extension>]
module Extension
    [<System.Runtime.CompilerServices.Extension>]
    let Superb(s: System.String) = "Superb!!!"

代码语言:javascript
运行
复制
// Use extension method on System.String from C# console app:
class Test
{
    static void Main(string[] args)
    {
        System.Console.WriteLine("abc".Superb());
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29052117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档