声明变量/执行没有名称的函数

时间:2014-10-25 16:19:04

标签: c# shortcut

我真的找不到任何相关的东西,虽然我不确切知道如何说出来。

写这样的东西有缺点:

new Thread(new ParameterizedThreadStart(SomeFunction)).Start(SomeObject);

与此相对:

ParameterizedThreadStart threadStart = new ParameterizedThreadStart(SomeFunction);
Thread thread = new Thread(threadStart);
thread.Start(SomeObject);

对我来说,如果我再也不需要再打电话给那个帖子了,那为什么我要为它命名呢?

3 个答案:

答案 0 :(得分:1)

在你的情况下,没有,但是你想要使用变量而不是内联的一些原因是:

  • (显然)如果你想重用价值
  • 如果结果已实施IDisposable(在这种情况下,您将其封装在using声明中)
  • 如果复合语句的一部分可以抛出一个你可以处理的异常,而不是让它冒出来。

答案 1 :(得分:1)

在我看来,这取决于中间变量是否为未来的代码读者提供了价值。

在你的情况下,我没有看到任何保持紧凑的麻烦,因为中间人只是在工作线程上运行SomeFunction所必需的基础设施代码。

答案 2 :(得分:1)

您可以为

执行此操作
  1. 更好的可读性。

  2. 维护代码很容易(对于其他开发人员)

  3. 和异常处理(在某些情况下)

  4. 否则两者都是平等的。