C#扩展方法只能在一个类中显示和访问(“私有”)

在C#中是否可以在类上创建扩展方法,但限制类中的可见性/可访问性? (例如,类M中的扩展方法A只能在类Z内访问)

例:

class A
{
     String foo = "";
     String bar = foo.MakeMillionaire("arg");
}

在上面的例子中,我想让扩展方法“MakeMillionaire”将String类扩展为在类A中可见和可访问.我可以通过在类A中的静态类中定义扩展方法来做到这一点吗?

编辑:尝试一个常规的嵌套类产生“错误:扩展方法必须在顶级静态类”中定义.

解决方法

扩展方法只能在静态非泛型外(非嵌套)类中定义.

我通常在这种情况下做的是在同一个文件中的不同命名空间中创建一个单独的静态内部类,然后在该文件中包含该命名空间.

该组件中的其他类仍然可见;避免这种情况的唯一方法是将消费类(您的示例中的A类)移动到自己的程序集,您可能不希望这样做.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...