静态使用无法识别方法名称,表示该名称在当前上下文中不存在

问题描述 投票:-1回答:1

请注意:我知道a similar question已经有been answered。我花了一段时间才找到该问题/答案,因为它假设我认识到它特定地涉及扩展方法,而我一开始并没有。我在错误的假设下认为static using功能可以only与扩展方法一起使用,因此,由于其感知的多余性,我在搜索时未包括在内。

这篇文章的目的是帮助那些不认识的人。


我有一些C#6中引入的using static directive代码:

using static MyNs.MyExtensionMethods;

我正在尝试使用在MyNs.MyExtensionMethods中定义的扩展方法,并且这种方法可以正常工作(总是如此):

foo.MyExtensionMethod();

但这不是:

MyExtensionMethod(foo);

我收到编译器错误“当前上下文中不存在名称'MyExtensionMethod'”。这是怎么回事?

c# .net static extension-methods using-directives
1个回答
1
投票

this answer所指示,您不能使用using static指令来允许对扩展方法的无条件访问,而只能使用常规的静态方法(即,第一个参数上没有this关键字)。该答案中明确说明了原因,因此在这里我不再重复。

© www.soinside.com 2019 - 2024. All rights reserved.