C# 不确定为什么会这样说;方法的重载不接受0个参数;
我应该把用户的输入重新打印成其他大写字母。我把字符串转换成一个字符数组,我试图用数组中位置的剩余部分来完成它 有问题的行是y=letter.ToUpper()和y=letter.ToLower()行,这两行给了我一个错误“方法'ToUpper'/'ToLower'没有重载需要0个参数。我不确定为什么即使在看了其他人的示例后也会出现错误C# 不确定为什么会这样说;方法的重载不接受0个参数;,c#,arguments,overloading,C#,Arguments,Overloading,我应该把用户的输入重新打印成其他大写字母。我把字符串转换成一个字符数组,我试图用数组中位置的剩余部分来完成它 有问题的行是y=letter.ToUpper()和y=letter.ToLower()行,这两行给了我一个错误“方法'ToUpper'/'ToLower'没有重载需要0个参数。我不确定为什么即使在看了其他人的示例后也会出现错误 static void Main(string[] args) { Console.Write("Enter anything: ");
static void Main(string[] args)
{
Console.Write("Enter anything: ");
String x = Console.ReadLine();
char[] array = x.ToCharArray();
for(int i = 0; i<array.Length; i++)
{
char letter = array[i];
char y;
if(i % 2 == 0)
{
y = letter.ToUpper();
Console.Write(y);
}
else if(i % 2 == 1)
{
y = letter.ToLower();
Console.Write(y);
}
}
}
static void Main(字符串[]args)
{
控制台。写入(“输入任何内容:”;
字符串x=Console.ReadLine();
char[]数组=x.ToCharArray();
对于(int i=0;i与string
不同,char
没有ToUpper()
或ToLower()
实例方法
它确实有带有这些名称的静态方法,这就是为什么会出现令人困惑的错误消息
使用您正在调用的char.ToLower(y)
,这是一种静态方法,接受相关字符作为参数,还可以选择使用CultureInfo
所以你可能想要:
y = char.ToUpper(letter);
及
请注意,如果使用条件运算符,循环会简单得多:
for(int i = 0; i < array.Length; i++)
{
char letter = array[i];
char y = i % 2 == 0 ? char.ToUpper(letter) : char.ToLower(letter);
Console.Write(y);
}
for(int i=0;i
只是一个旁注。不需要将字符串转换为数组。您也可以使用索引访问它的单个字母(int i=0;i
for(int i = 0; i < array.Length; i++)
{
char letter = array[i];
char y = i % 2 == 0 ? char.ToUpper(letter) : char.ToLower(letter);
Console.Write(y);
}