可能重复:
是否可以创建扩展方法来格式化字符串?
我有这堂课:
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 [])”。使用类型名称对其进行限定。
为什么?我怎么解决这个问题?