Почему оператор && прерывается, если в этом выражении C # не используются скобки? - PullRequest
0 голосов
/ 10 января 2019

Мой друг работал над запросом на извлечение проекта C #, но застрял в ошибке компилятора, поскольку сборка для изменения не удалась. Я проверил синтаксис, но был уверен, что он был правильным.

Для этой новой строки кода:

if (PreviewLink && Helpers.IsImageFile(path))

Компилятор пожаловался на следующее:

ошибка CS1525: недопустимый термин выражения '&&'
ошибка CS1002:; Ожидается,
ошибка CS1513:} ожидается

Изменение этого значения на следующее исправило проблему компиляции:

if ((PreviewLink) && (Helpers.IsImageFile(path)))

Я не понимаю, что здесь происходит, и ошибка компилятора из msbuild не слишком полезна. Может ли кто-нибудь объяснить, почему первое выражение без скобок недопустимо? Чего мне не хватает?


Теперь некоторая справочная информация о самом коде. Оба выражения по обе стороны от оператора && являются bool eans, см. Следующие две подписи:

public bool PreviewLink { get; set; }
// -- snip --
public static bool IsImageFile(string filePath)

Фактическое изменение, которое исправило проблему компиляции, можно найти здесь .

Это сборки AppVeyor для с ошибками и затем успешных фиксаций для изменения, связанного выше. Локальные сборки дали те же результаты.

1 Ответ

0 голосов
/ 10 января 2019

Посмотрите на вашу предыдущую регистрацию: https://github.com/ShareX/ShareX/pull/3869/commits/f779c9d74d40f2bb8f7cf3f82a6686d6d9f76fee

Имеет следующую строку:

if (PreviewLink) && Helpers.IsImageFile(path)

Это даст вам ошибку компиляции, которую вы видите, поэтому я думаю, что это была проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...