C#扩展方法只能在一个类中显示和访问(“私有”)
发布时间:2020-12-15 17:37:11 所属栏目:百科 来源:网络整理
导读:在C#中是否可以在类上创建扩展方法,但限制类中的可见性/可访问性? (例如,类M中的扩展方法A只能在类Z内访问) 例: class A{ String foo = ""; String bar = foo.MakeMillionaire("arg");} 在上面的例子中,我想让扩展方法“MakeMillionaire”将String类扩展为
在C#中是否可以在类上创建扩展方法,但限制类中的可见性/可访问性? (例如,类M中的扩展方法A只能在类Z内访问)
例: class A { String foo = ""; String bar = foo.MakeMillionaire("arg"); } 在上面的例子中,我想让扩展方法“MakeMillionaire”将String类扩展为在类A中可见和可访问.我可以通过在类A中的静态类中定义扩展方法来做到这一点吗? 编辑:尝试一个常规的嵌套类产生“错误:扩展方法必须在顶级静态类”中定义. 解决方法
扩展方法只能在静态非泛型外(非嵌套)类中定义.
我通常在这种情况下做的是在同一个文件中的不同命名空间中创建一个单独的静态内部类,然后在该文件中包含该命名空间. 该组件中的其他类仍然可见;避免这种情况的唯一方法是将消费类(您的示例中的A类)移动到自己的程序集,您可能不希望这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |