我应该接受用户的输入并将其重新打印成备用大写字母.我拿了字符串并将其转换为char数组,我试图通过使用数组中剩余的位置来完成它.
有问题的行是y = letter.ToUpper()和y = letter.ToLower()行,它给出了错误"方法没有重载'ToUpper'/'ToLower'需要0个参数.我不知道为什么我'即使在查看其他人的例子之后,我也会收到错误.
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
不像string,char没有ToUpper()或ToLower()实例方法。
它确实具有带有这些名称的静态方法,这就是为什么您会收到令人困惑的错误消息的原因。
使用char.ToLower(y).
你正在调用char.ToLower- 这是一个静态方法,接受相关的字符作为参数,并可选择一个CultureInfo.
所以你可能想要:
y = char.ToUpper(letter);
Run Code Online (Sandbox Code Playgroud)
和
y = char.ToLower(letter);
Run Code Online (Sandbox Code Playgroud)
请注意,如果使用条件运算符,则循环会更简单:
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);
}
Run Code Online (Sandbox Code Playgroud)