我添加的擴展方法是一個快捷方式的String.format:擴展方法VS靜態方法解析 - 我在spec中錯過了什麼?
public static string Format(this string format, params object[] args)
{
return String.Format(format, args);
}
當我調用該方法是這樣的:
"{0}".Format(1);
一切就像一個魅力。 雖然
"{0}".Format("1");
不與此錯誤消息編譯:
錯誤CS0176:成員 '的String.Format(字符串,則params 對象[])' 不能與 實例引用來訪問;使用 類型名稱代替
我通過重命名方法(ooh這是一個痛苦)解決了此問題。但爲什麼會發生?我知道擴展與實例優先級 - 但這不是一個實例方法。如果一個路徑無法解析(在非靜態環境中引用靜態方法),那麼IMO應嘗試另一個路徑(完全合法的)。在規格中我錯過了什麼?
更新1增加了編譯錯誤信息。
什麼是編譯錯誤信息? – thecoop 2010-09-08 10:38:56
謝謝。我向根問題添加了錯誤消息。 – 2010-09-08 10:46:05