我的一个朋友正在为C#项目处理请求请求,但由于更改构建失败而陷入编译器错误。我检查了语法,但确定它是正确的。
对于此 new 代码行:
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)
可以找到here来解决编译问题的实际更改。
这些是AppVeyor为failed构建的,然后是succesful提交的,用于上面链接的更改。本地版本提供了相同的结果。
答案 0 :(得分:5)
查看您之前的签到地址:https://github.com/ShareX/ShareX/pull/3869/commits/f779c9d74d40f2bb8f7cf3f82a6686d6d9f76fee
它具有以下行:
if (PreviewLink) && Helpers.IsImageFile(path)
那会给您您所看到的编译错误,所以我认为这是问题所在。