public record Cube(int x, int y, int z, int w);
我最近遇到了这样的情况:
var next = new Cube(existing.x + 1, existing.y, existing.z, existing.w);
我认为必须有一种更干净的方法将任意值添加到记录中。但是当我尝试这个:
var next = existing with { x = x+1 };
之所以哭,是因为您无权访问要添加的值。相反,我必须这样做:
var next = existing with { x = existing.x+1 };
我只是想要with
关键词太多吗?
我对语法的理解恰恰是-您必须在width语句的左侧引用对象的名称。这似乎符合此处的规范:https : //docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/proposals/csharp-9.0/records
尽管x = x + 1
方便,但在x的来源方面不是很能表达。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句