为了账号安全,请及时绑定邮箱和手机立即绑定

?语法错误,其他错误

?语法错误,其他错误

C#
哔哔one 2021-03-30 12:09:00
我班上有这个: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);我想知道你在哪里错了,应该怎么纠正。
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

作为null检查的替代方法,您可以将字段分配为什么都不做:


public delegate void OnTrue(String TestPassed);

public event OnTrue OnTrueEvent = (item) => { }; // do nothing; not null


public 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);

因为? :必须为两个分支返回相同的类型


查看完整回答
反对 回复 2021-04-10
  • 2 回答
  • 0 关注
  • 324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信