В C # как я могу использовать ||операнд в операторе if, где я ищу 2 файла? - PullRequest
2 голосов
/ 07 октября 2010

Я получаю ошибку "Оператор '||' не может применяться к операндам типа 'bool' и 'string' ", когда я использую приведенный ниже оператор.

if (File.Exists(@"C:\file1.exe") || (@"c:\file2.exe"))
  {
     do something
  }

Как я могу это сделать?

Спасибо

Ответы [ 3 ]

11 голосов
/ 07 октября 2010

У вас почти это было ...

if (File.Exists(@"C:\file1.exe") || File.Exists(@"c:\file2.exe"))
{
   //do something
}

В операторе if, если вы хотите использовать ||, вам нужно убедиться, что вы рассматриваете их как отдельные части оператора.

В этом случае у компилятора не будет возможности «угадать», что вы хотите знать, существует ли файл в вашем правостороннем выражении, вам нужно явно указать это.

Точно так же, как если вы хотите проверить, не является ли возраст человека младше 20 лет, но старше 18 лет, вы бы сделали следующее:

if (age < 20 && age > 18) {}

Вы не можете просто сказать age < 20 || 18, потому что можетеговорить о чем угодно, а не только о возрасте.Что делать, если вы хотели вес или рост в качестве второй проверки?C # не сможет угадать за вас.

3 голосов
/ 07 октября 2010

Вы имеете в виду:

if (File.Exists(@"C:\file1.exe") || File.Exists(@"c:\file2.exe"))
  {
     // do something
  }

File.Exists возвращает bool (то есть true или false), поэтому вы должны вызывать его на каждом пути.

2 голосов
/ 07 октября 2010

попробовать:

(File.Exists(@"C:\file1.exe") || (File.Exists(@"c:\file2.exe"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...