【发布时间】:2013-11-19 14:14:32
【问题描述】:
我正在学习 C# 和 C,而这个 C# 代码给了我一个我不明白的错误。我正在阅读扩展方法,这段代码给出了错误:方法'WriteTextToConsole'没有重载需要1个参数。如您所见,它恰好需要 1 个参数?我创建变量 c 和 count 只是为了能够构造字符串对象。所以我可以在 String 类中尝试扩展。你创建扩展方法的方式是否正确理解:是在参数前面加上“this”关键字,并且参数是要扩展的类的类型?
代码在这里:
Console.WriteLine();
M.WriteTextToConsole("Hello, world. Programming in C# is fun");
char c = 'A';
int count = 14;
String str = new String(c, count);
str.WriteTextToConsole("This is a string");
方法在这里:
static class M
{
public static void WriteTextToConsole(this string text)
{
Console.WriteLine(text);
}
}
【问题讨论】:
-
第一个参数是字符串本身,在您的示例中为
str。您的扩展方法需要两个字符串参数才能编译。
标签: c# methods parameters this extension-methods