Переключить регистр, принимая элемент массива вместо строгих значений - PullRequest
0 голосов
/ 21 января 2020

Мне было интересно, может ли кто-нибудь объяснить мне, почему вы не можете использовать array[index] в корпусе коммутатора.

Я наткнулся на это, делая простые настройки чтения / записи класса, и у него было Я немного запутался на некоторое время, так как отладчик сказал мне, что все значения верны.

Пример первый, этот код не работает:

String[] lines = File.ReadAllLines(filePath);
foreach(String line in lines) {
    String[] args = line.Split(':');
    switch(args[0]) {
        case "Version":
            Version = args[1].Trim();
            break;
        case "Run Local":
            RunLocal = (args[1].Trim().ToLower() == "true") ? true : false;
            break;
    }
}

Пример два, обратите внимание, что я использую String val = args[0] перед переключателем

String[] lines = File.ReadAllLines(filePath);
foreach(String line in lines) {
    String[] args = line.Split(':');
    String val = args[0];
    switch(val) {
        case "Version":
            Version = args[1].Trim();
            break;
        case "Run Local":
            RunLocal = (args[1].Trim().ToLower() == "true") ? true : false;
            break;
    }
}

РЕДАКТИРОВАТЬ

Кажется, что есть некоторая путаница, поэтому я обновил примеры кода, чтобы показать весь метод, и я попытаюсь немного уточнить.

При использовании args [0] в моем переключателе, он не совпадает со значением ни в одном из случаев, несмотря на то, что фактически идентичен (я обращаюсь к приложенному изображению инспектор). Код в основном просто продолжает, как будто не найдено ни одного совпадения.

У меня есть settigns.txt, где я просто читаю все файлы с File.ReadAllLines(filePath). Этот файл настроек выглядит следующим образом:

Version: 0
Run Local: true

Изображения инспектора:

enter image description here

...