2015-08-10 3 views
2

У меня возникла проблема с C#. Я хотел бы изменить строку, которая будет изменена наполовину, хотя код, и будет проверена true или false позже.Изменение активной строки C#

До сих пор у меня были проблемы с этим и упоминалось в Интернете. Я ничего не мог найти.

Пример ..

if (LineIN == "silent") 
{ 
    string silent = "true"; //Change string from false to true 
} 

тестер ...

if (silent == "true") 
{ 
// Do something 
} 

Im использованием визуальных студий и он сказал, мне нужно, чтобы создать для строки из стороны, если так я и сделал. После того, что он дает мне больше ошибок ..

Console.WriteLine(""); 
    Console.ForegroundColor = ConsoleColor.DarkCyan; 
    Console.Write("RSA #: "); 
    string LineIN = Console.ReadLine(); 

    if (LineIN == "silent") 
    { 
     string silent = "true"; 
    } 
} 

if (silent == "false") { // } 
+0

В одном месте вы ссылаетесь на молчание, а в другом - на разговоры. Они должны быть одной и той же переменной? – lintmouse

+0

да извините, это была опечатка: l –

+0

Какие ошибки вы сейчас получаете? Как создается экземпляр LineIN? – lintmouse

ответ

6

Как говорит ошибка, вам нужно будет объявить silent в более широком масштабе. Например:

void main() 
{ 
    string silent = "false"; // silent is declared here in outer scope so it can be used in the second if() 

    Console.ForegroundColor = ConsoleColor.DarkCyan; 
    Console.Write("RSA #: "); 
    string LineIN = Console.ReadLine(); 

    if (LineIN == "silent") 
    { 
     silent = "true"; 
    } 

    if (silent == "true") 
    { 
     // do something 
    } 
} 

Если вы объявляете переменную внутри silent из if заявления, переменная не будет доступна за пределами этого блока. Перемещение декларации за пределами if позволяет получить доступ к переменной позже в методе и чтения/изменения значения и т.д.

В качестве альтернативы, вы можете использовать для хранения booltrue/false значения:

bool silent = false; // silent is declared here in outer scope so it can be used in the second if() 

    Console.ForegroundColor = ConsoleColor.DarkCyan; 
    Console.Write("RSA #: "); 
    string LineIN = Console.ReadLine(); 

    if (LineIN == "silent") 
    { 
     silent = true; 
    } 

    if (silent == true) 
    { 
     // do something 
    } 

Объявление silent с начальным значением false является избыточным, так как значение по умолчанию bool равно false в любом случае. Я добавил его только для того, чтобы сделать изменение от false до true более очевидным.

+2

Очень приятно. Но я бы использовал «bool». OP все еще учится ;-) – Stefan

+2

Исправить. Я бы также использовал 'bool', но вопрос задавал вопрос об изменении значения' string'. Определенно OP должен использовать 'bool' :) –

+0

Есть ли что-то, что позволило бы мне использовать его во 2-м, если? –

Смежные вопросы