Possible Duplicate:
Is it possible to create an extension method to format a string?用的String.Format奇怪的編譯器錯誤的擴展方法
我有這個類:
public class Person
{
public string Name { get; set; }
public uint Age { get; set; }
public override string ToString()
{
return String.Format("({0}, {1})", Name, Age);
}
}
擴展方法:
public static string Format(this string source, params object[] args)
{
return String.Format(source, args);
}
我想測試它,但我有以下奇怪的行爲:
Person p = new Person() { Name = "Mary", Age = 24 };
// The following works
Console.WriteLine("Person: {0}".Format(p));
Console.WriteLine("Age: {0}".Format(p.Age));
// But this gives me a compiler error:
Console.WriteLine("Name: {0}".Format(p.Name));
編譯器錯誤:
無法通過對實例的引用訪問成員'string.Format(string,params object [])'。使用類型名稱對其進行限定。
爲什麼?我怎麼解決這個問題?
您應該檢查此http://計算器.com/questions/6587243/is-it-it-possible-to-create-an-extension-method-to-format-a-string及其接受的答案。 –