错误:未为<>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

谢谢。

最佳答案

如果您想将某些内容与Nothing进行比较,则只需对其进行比较。无需将Nothing强制转换为特定类型。另外,仅将=<>用于值相等。这意味着对于值类型(结构)和少数几个引用类型,其中值相等是有意义的,例如对于Strings,在这里您关心的是两个String对象包含相同的字符,而不是两个引用是否引用一个String对象。为了实现引用相等,请使用IsIsNot:

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(""))

关于vb.net - 未为 '<>'和 'System.Diagnostics.Process'类型定义错误运算符 'System.Diagnostics.Process',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61036985/

10-09 10:09