【发布时间】:2019-07-09 12:09:02
【问题描述】:
我有一个类Demo,它有以下四种方法Add()、Update()、Delete()和Get()。
这些方法如下链接在一起:
bool isSuccess = this.Get(1)
.Update(200) //new product price
现在,我想实现CatchError() 方法,该方法将捕获上述任何方法中发生的Exception if。
代码如下所示:
bool isSuccess = this.Get(1)
.Update(200); //new product price
.CatchError();
我有no idea如何实现CatchError()方法。
很乐意提供更多信息以帮助正确回答问题。
【问题讨论】:
-
创建
CatchError()方法是否是一种解决方案,其中您有一个action/Func 参数。参数为this.Get(1).Update(200)。该参数看起来就像@JeroenMostert 在下一条评论中写的那样。 -->() => this.Get(1).Update(200) -
您不能将其实现为方法上的链。但是,您可以实现一个包装
Action的方法,因此您可以将() => this.Get(1).Update(200)传递给它。 (虽然从技术上讲,您可以将这样的Action与扩展方法链接起来,但这些往往比他们澄清的更多。) -
所有方法(
Get、Update等)返回什么? -
你为什么不
this.SubscribeOnError(Class_OnError).Get(1).Update(200);这样你只需要在方法中提出一个CancelEventHandler如果他们给出错误。 -
添加了一个没有事件的答案,但只是调用函数@BijayYadav
标签: c# .net try-catch method-chaining