2

当针对流畅的 API 进行编程或仅使用方法链时,我看到的风格大多是这样的:

var obj = objectFactory.CreateObject()
    .SetObjectParameter(paramName, value)
    .SetObjectParameter(paramName, value)
    .DoSomeTransformation();

将点放在行首而不是行尾的原因是什么:

var obj = objectFactory.CreateObject().
    SetObjectParameter(paramName, value).
    SetObjectParameter(paramName, value).
    DoSomeTransformation();

或者,它仅仅是一个团队达成共识的风格吗?

4

2 回答 2

13

这只是一种风格。

放置的优势。该行的开头是它使快速浏览时更加清楚这不是一个独立的方法调用。

例如,如果您这样做:

var obj = objectFactory.CreateObject()
    .SetObjectParameter(paramName, value)

您可以看出这SetObjectParameter(...)是在其他对象上调用的方法,只需查看该行即可。这样做:

var obj = objectFactory.CreateObject().
    SetObjectParameter(paramName, value)

需要你看上一行来判断。例如,这可能是格式问题,即:

var obj = objectFactory.CreateObject();
    SetObjectParameter(paramName, value);

(这里,SetObjectParameter将是当前类型的方法,而不是CreateObject()- 返回的类型,但是,通过查看第二行,如果没有 . 开始该行,这并不明显)。

于 2010-03-08T16:58:15.627 回答
5

我能想到的三个原因:

  • 更明显的是,每个语句都是前一个语句的延续。
  • 我发现 Visual Studio 的智能感知更喜欢这种方式。
  • 至少在我看来,这在眼睛上更容易。
于 2010-03-08T17:01:07.207 回答