[英]How can I make method invocation order explicit with C#?
如何使用C#明确方法调用顺序?
我想在代码中明确指出一种方法应该在另一种方法之前调用,这有点类似于JavaScript中的回调方法。 我在想像数组或动作列表之类的方法可能会解决问题,但是鉴于我要实现的目标,我不确定这是否是最好的方法-如果事情发生了,它将为用户带来更好的体验确定顺序,但我想通过代码使其明确,而不是添加注释。
这是我到目前为止的内容:
Action<dynamic>[] deleteOperations = new Action<dynamic>[2];
deleteOperations[0] = (resource => this.RemoveImageFromDatabase(resource));
deleteOperations[1] = (filename => _blobStorage.DeleteBlob(filename));
这可能是一个困难的问题,尤其是在没有更多信息的情况下。 为什么不提供一种按所需顺序执行所需操作的方法?
void Delete(Resource resource, String filename) {
try {
this.RemoveImageFromDatabase(resource);
}
catch {
}
try {
_blobStorage.DeleteBlob(filename);
}
catch {
}
}
这样可以确保按要求排列顺序,并可以更好地控制操作(例如,允许您记录异常)。
您是否研究过时间耦合? 基本上,您使第二个函数依赖于第一个。
我不知道这对您的情况是否有帮助,但是您最终会得到如下结果:
var first = FirstMethod(p1, p2);
var second = SecondMethod(first, p3);
由于第二个呼叫依赖于第一个,因此您不能无序呼叫它们。
此线程中有一些链接和想法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.