2016-05-09 3 views
0
string choice = String.ToUpper(Console.ReadLine()); 

Я хочу ввести строку и преобразовать ее в верхний регистр. Тем не менее, есть ошибка, которая гласит:Как преобразовать входную строку в верхний регистр в C#

cannot convert from 'string' to System.Globalization.CultureInfo'

, который появляется, когда я парить над Console.ReadLine(). Почему это не работает и какие исправления существуют? И есть ли другой способ сделать это?

+0

Попробуйте 'string choice = Console.ReadLine(). ToUpper();' –

+0

Обратите внимание, что ошибка, которую вы видите («не может преобразовать ...»), маскирует реальную проблему - если вы как-то исправили эту ошибку, вы увидите другую («Ссылка на объект требуется для строки нестатического поля, метода или свойства». «ToUpper») - решается в соответствии с ответами. –

ответ

2

String.ToUpper является методом экземпляра, это означает, что вы должны использовать его «на» вашу строке:

string input = Console.ReadLine(); 
string choice = input.ToUpper(); 

В противном случае вы используете the overload, который принимает CultureInfo объекта. Поскольку String не конвертируется в System.Globalization.CultureInfo, вы получаете ошибку компилятора. Но это заблуждение, так или иначе, вы не можете использовать метод экземпляра без экземпляра, так что это дает еще одну ошибку:

String.ToUpper(CultureInfo.CurrentCulture); // what string you want upper-case??! 

An object reference is required for the non-static field, method, or property 'string.ToUpper(CultureInfo)

Метод может быть использован без экземпляра типа, только если она static.

0

Это не работает таким образом.

string choice = Console.ReadLine().ToUpper(); 

Метод ToUpper относится к классу String. Он принимает параметр типа System.Globalization.CultureInfo.

0

Вы можете написать:

строка выбора = (Console.ReadLine()) ToUpper();.