假设不是返回 void 方法,而是返回对该类的引用,即使它没有任何特定的语义意义。在我看来,它会给你更多关于如何调用方法的选择,允许你以类似流畅界面的风格使用它,而且我真的想不出任何缺点,因为你不需要做任何事情与返回值(甚至存储它)。
因此,假设您想要更新一个对象,然后返回其当前值。
而不是说
myObj.Update();
var val = myObj.GetCurrentValue();
你将能够将这两行结合起来说
var val = myObj.Update().GetCurrentValue();
EDIT:我一时兴起问了下面的问题,回想起来,我同意这可能是不必要的且复杂的,但是我关于返回这个而不是无效的问题仍然成立。
与此相关的是,你们认为让该语言包含一些新的语法糖怎么样:
var val = myObj.Update()<.GetCurrentValue();
该运算符的优先级较低,因此 myObj.Update() 将首先执行,然后对 myObj 调用 GetCurrentValue(),而不是 Update 的 void 返回。
本质上,我想象一个运算符会说“在左侧第一个有效对象上调用运算符右侧的方法”。有什么想法吗?
我认为作为一般政策,它根本没有意义。这种方式的方法链接可以与正确定义的接口一起使用,但只有在具有语义意义时才是合适的。
你的例子是一个不合适的主要例子,因为它没有语义意义。
同样,对于一个设计得当的流畅界面来说,你的语法糖是不必要的。
流畅的接口或方法链can工作得很好,但需要仔细设计。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)