Chr*_*yer 2 c# coding-style fluent-interface method-chaining
当使用流畅的API编程或只使用方法链接时,我看到的风格大多是这样的:
var obj = objectFactory.CreateObject()
.SetObjectParameter(paramName, value)
.SetObjectParameter(paramName, value)
.DoSomeTransformation();
Run Code Online (Sandbox Code Playgroud)
将点放在行的开头而不是行的末尾的原因是什么:
var obj = objectFactory.CreateObject().
SetObjectParameter(paramName, value).
SetObjectParameter(paramName, value).
DoSomeTransformation();
Run Code Online (Sandbox Code Playgroud)
或者,这只是团队达成共识的风格吗?
Ree*_*sey 13
这只是一种风格.
放的好处.在行的开头是,它使得它更清晰,快速一瞥,这不是一个独立的方法调用.
例如,如果你这样做:
var obj = objectFactory.CreateObject()
.SetObjectParameter(paramName, value)
Run Code Online (Sandbox Code Playgroud)
你可以知道这SetObjectParameter(...)是一个在其他对象上调用的方法,只是查看该行.这样做:
var obj = objectFactory.CreateObject().
SetObjectParameter(paramName, value)
Run Code Online (Sandbox Code Playgroud)
要求您查看上一行告诉.例如,这可能是格式化问题,即:
var obj = objectFactory.CreateObject();
SetObjectParameter(paramName, value);
Run Code Online (Sandbox Code Playgroud)
(这里,SetObjectParameter将是当前类型的方法,而不是返回的类型CreateObject()- 但是,通过查看第二行,如果没有.开头那条线,这是不明显的).
我能想到的三个原因: