【发布时间】:2018-09-19 18:39:30
【问题描述】:
我班上有这个:
public delegate void OnTrue(String TestPassed);
public event OnTrue OnTrueEvent;
public delegate void OnFalse(String TestPassed);
public event OnFalse OnFalseEvent;
这是我的Do 方法:
public void Do()
{
bool found=false;
string p ="";
// some actions
found ? (OnTrueEvent != null ? OnTrueEvent(p): ;) :(OnFalseEvent != null ? OnFalseEvent(p): ;);
}
if in line 不起作用的问题。
展开应该是这样的:
if (found)
if (OnFalseEvent != null)
OnFalseEvent(p);
else
if (OnTrueEvent != null)
OnTrueEvent(p);
我想知道你错在哪里以及应该有多正确。
【问题讨论】:
-
为什么不使用简单的
if-else块? -
';' ':' 之后不是有效的终止符(我不知道正确的翻译是什么,我有意大利语的视觉工作室)
-
? :是一个运算符,它必须返回一个值,这就是为什么: ;是一个语法错误 -
作为一般建议 - 你真的在这里滥用三元运算符并牺牲几行代码的可读性是一个非常糟糕的主意。我知道这不是你的问题,但我认为你应该使用你的“爆炸”变体。