【发布时间】:2010-09-08 10:37:33
【问题描述】:
我添加了一个扩展方法,它是 string.Format 的快捷方式:
public static string Format(this string format, params object[] args)
{
return String.Format(format, args);
}
当我像这样调用这个方法时:
"{0}".Format(1);
一切都像一个魅力。 而
"{0}".Format("1");
编译时出现此错误消息:
错误 CS0176:成员 'string.Format(字符串,参数 object[])' 不能用 实例参考;用一个限定它 改为输入名称
我通过重命名方法解决了这个问题(哦,这很痛苦)。但为什么会发生呢?我知道扩展与实例优先级 - 但这不是实例方法。如果无法解析一条路径(在非静态上下文中引用静态方法),则 IMO 应尝试另一条路径(完全合法)。我在规范中遗漏了什么?
更新1添加了编译错误信息。
【问题讨论】:
-
编译错误信息是什么?
-
谢谢。我在根问题中添加了错误消息。
标签: c# extension-methods format static-methods