【发布时间】:2014-03-31 20:08:57
【问题描述】:
我正在尝试运行这个内联 if 语句
pRun.StartInfo.FileName = File.Exists("C:\\Test\\Data\\TestingPurposes\\" + UserName
+ "DailyInfo") ? pRun.StartInfo.UseShellExecute = true : MessageBox.Show("Please
verify that this file exists");
但我收到以下编译错误:
无法确定条件表达式的类型,因为 'bool' 和 'System.Windows.Forms.DialogResult' 之间没有隐式转换
如何消除此错误并运行以下语句?我想要做的是检查文件是否存在,如果存在,打开它。如果没有,则生成带有所述消息的messagebox。
【问题讨论】:
-
你有一些语法错误,但是你想通过这段代码实现什么?
-
@HamletHakobyan - 我想检查文件是否存在。如果文件确实存在则打开文件,如果不产生所述MessageBox。
-
为什么你不想在这里使用普通的
if语句? -
如果该文件存在,您正在尝试将
pRun.StartInfo.UseShellExecute = true分配给pRun.StartInfo.FileName。 -
MessageBox.Show()不返回布尔值;它返回一个DialogResult。因此,您需要通过比较其值MessageBox.Show(...) == DialogResult.OK使其成为布尔表达式。也就是说,我不会对三元运算符这样做。这只是一团糟。
标签: c# ternary-operator