Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不确定为什么会这样说;方法的重载不接受0个参数;_C#_Arguments_Overloading - Fatal编程技术网

C# 不确定为什么会这样说;方法的重载不接受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: ");

我应该把用户的输入重新打印成其他大写字母。我把字符串转换成一个字符数组,我试图用数组中位置的剩余部分来完成它

有问题的行是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);
            }                
        }
    }
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);
}