Оператор ошибки «<>» не определен для типов «System.Diagnostics.Process» и «System.Diagnostics.Process» - PullRequest
0 голосов
/ 05 апреля 2020

Ошибка: оператор <> не определен для типов System.Diagnostics.Process и System.Diagnostics.Process.

Функция с ошибкой

Public Shared Function PornesteJocul() As Boolean
    Return Process.GetProcessesByName(DatePatch.BinaryName).FirstOrDefault(Function(p) p.MainModule.FileName.StartsWith("")) <> CType(Nothing, Process)
End Function

Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2020

Если вы хотите сравнить что-то с Nothing, просто сравните это. Нет необходимости приводить Nothing как конкретный тип c. Кроме того, вы используете = и <> только для равенства значений. Это означает, что для типов значений (структур) и для некоторых очень немногих ссылочных типов, где имеет значение равенство значений, например, для Strings, где важно, чтобы два объекта String содержали одинаковые символы, а не то, относятся ли две ссылки к одному String объект. Для равенства ссылок вы используете Is и IsNot:

Return Process.GetProcessesByName(DatePatch.BinaryName).FirstOrDefault(Function(p) p.MainModule.FileName.StartsWith("")) IsNot Nothing

Если вас действительно волнует, есть ли совпадение, а не то, что это совпадение, вам не нужно сравнение:

Return Process.GetProcessesByName(DatePatch.BinaryName).Any(Function(p) p.MainModule.FileName.StartsWith(""))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...