繁体   English   中英

不确定为什么它声明“方法没有重载需要0个参数”

[英]Unsure why it states “No overload for method takes 0 arguments”

我应该接受用户的输入并将其重新打印成备用大写字母。 我拿了字符串并将其转换为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);
            }                
        }
    }

您正在调用char.ToLower - 这是一个静态方法,接受相关字符作为参数,以及可选的CultureInfo

所以你可能想要:

y = char.ToUpper(letter);

y = char.ToLower(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);
}

string不同, char没有ToUpper()ToLower()实例方法。

它确实有这些名称的静态方法,这就是你得到一个令人困惑的错误信息的原因。

使用char.ToLower(y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM