Я получаю код ошибки CS0162 " обнаружен недостижимый код"
bool CheckSubproject() { #pragma warning disable 649 // Unreachable code detected 0162 changed to 649 if (sub != "") return true; string result = ""; //(string) is the unreachable code that is detected if (project == "bmte") { List<fileinfo> files = SearchFiles(dataPath); FileInfo adAssistant = files.Find(x => x.Name == "AdAssistant.cs"); if (adAssistant != null) result = "pro"; else result = "standard"; } if (result != "") { FileInfo fileInfo = SearchFiles(dataPath).Find(x => x.Name == "Fixer.cs"); if (fileInfo != null) { StreamReader fileR = new StreamReader(fileInfo.FullName); string code = fileR.ReadToEnd(); fileR.Close(); Regex re = new Regex(@"const\s+string\s+sub\s+\=\s+""{2}\;"); code = re.Replace(code, "const string sub = \"" + result + "\";"); StreamWriter fileW = new StreamWriter(fileInfo.FullName); fileW.WriteLine(code); fileW.Close(); StopDownloadIssues(); AssetDatabase.Refresh(); } } return false; #pragma warning restore 649 // Unreachable code detected # CS0162 }
Что я уже пробовал:
Я попытался установить строку в Public, Local и static. Кажется, с этой строкой ничего не работает. У меня есть # pragma warning disable and enable для кода 649, но при удалении кода я получаю более 60 ошибок. С кодом единственная ошибка связана со строкой.
Bernhard Hiller
Вы что-то пропустили {}
когда вы скопировали свой код сюда? Чтобы получить это предупреждение компилятора, код должен выглядеть следующим образом
if (sub != "") { return true; string result = ""; }- и теперь ясно видно, почему эта строка - "недостижимый код".