2013-04-22 3 views
0

В моем классе мой учитель показал мне что-то похожее на это. Visual Studio говорит, что строка не имеет определения для синтаксического анализа. Помню, в классе учитель сказал, что это something.parse(thingyouwanttoparse). Никаких запятых. Я искал в Интернете, но все варианты отличаются от того, который показал мне учитель. Что я делаю не так?Простой анализ строки int в строке

if (!ValidMenuOption) 
{ 
    string errorMsg = "\n\t Option must be "; 
    int iteration = 1; 
    while (iteration <=numAvailable) 
    { 
     errorMsg = errorMsg + string.parse(iteration) + ", "; 
     iteration += 1 
    } 
    errorMsg = errorMsg + "or 0"; 
    Console.WriteLine(errorMsg); 
} //end if 
+3

Настоятельно рекомендуется указать язык программирования, который вы используете (и пометьте его тоже) – alfasin

+1

Возможно, вы пытаетесь использовать string.Format (thingyouwanttoformat)? – iGanja

+2

Возможный дубликат: [Преобразование int в строку в C#] (http://stackoverflow.com/q/3081916/299327) –

ответ

3

Анализ, когда вы превращаете строку в вещь. Форматирование противоположно разбору, а в C# вы можете форматировать int, вызывая на нем .ToString(). Если вы конкатенации строк, то вы можете даже оставить этот метод отзывать, так что ваш код, вероятно, становится

if (!ValidMenuOption){ 
    string errorMsg = "\n\t Option must be "; 
    int iteration = 1; 
    while (iteration <=numAvailable) {       
     errorMsg = errorMsg + iteration + ", "; 
     iteration+=1; 
    } 
    errorMsg = errorMsg + "or 0"; 
    Console.WriteLine(errorMsg); 
} 

Если вы хотите получить фантазии, вы могли бы сделать это таким образом тоже:

if (!ValidMenuOption){ 
    string errorMsg = "\n\t Option must be "+string.Join(", ", Enumerable.Range(1, numAvailable)) + " or 0"; 
    Console.WriteLine(errorMsg); 
} 
Смежные вопросы