?语法错误,其他错误

我班上有这个:


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

   if (OnFalseEvent != null)

      OnFalseEvent(p);

else

   if (OnTrueEvent != null)

      OnTrueEvent(p);

我想知道你在哪里错了,应该怎么纠正。


哔哔one
浏览 325回答 2
2回答

白板的微信

作为null检查的替代方法,您可以将字段分配为什么都不做:public delegate void OnTrue(String TestPassed);public event OnTrue OnTrueEvent = (item) => { }; // do nothing; not nullpublic delegate void OnFalse(String TestPassed);public event OnFalse OnFalseEvent = (item) => { }; // do nothing; not null...public void Do() {  ...  // No need to check for null here  if (found)     OnFalseEvent(p);  else    OnTrueEvent(p); }由于OnTrue和OnFalse是不同的类型,您不能将其作为(found ? OnFalseEvent : OnTrueEvent)(p);因为? :必须为两个分支返回相同的类型
打开App,查看更多内容
随时随地看视频慕课网APP