假设在一个方法中,你返回了一个类的引用而不是返回void,即使这样做并没有特别的语义意义。我认为这样做会给你更多调用方法的选项,允许你以流畅接口的方式使用它,而且我想不出任何缺点,因为你不必对返回值进行任何操作(甚至不必存储它)。
那么,假设你处于一种情况下,想要更新一个对象,然后返回其当前值。与其说
myObj.Update();
var val = myObj.GetCurrentValue();
你将能够将这两行代码组合起来,以此表达
var val = myObj.Update().GetCurrentValue();
编辑:我冲动地提出了下面的问题,回过头来看,我同意它很可能是不必要和复杂化的,但是我的问题是关于返回这个而不是void的。
另外,你们对语言中包含一些新的语法糖有什么想法?
var val = myObj.Update()<.GetCurrentValue();
这个运算符的优先级很低,因此 myObj.Update() 将首先执行,然后调用 myObj 上的 GetCurrentValue(),而不是 Update 的 void 返回值。
本质上,我想象中的运算符是这样说的:“在左侧第一个有效对象上调用右侧运算符上的方法”。有什么想法吗?