gpt4 book ai didi

c# - 使用 using 声明一个匿名元组;可能吗?

转载 作者:行者123 更新时间:2023-12-05 00:59:27 24 4
gpt4 key购买 nike

using Coordinate = (int x, int y);

不编译。

using Coordinate = System.Tuple<int, int>;

编译。

由于我更喜欢​​前者的原因;可以吗?

更新:

原因一直受到质疑和争论,所以这里是原因:

我有一个使用元组的小类。我可以写一个小元组 class Coord{int x; int y;}但决定不这样做。相反,我写了(int x, int y)无处不在,让鸭子打字发挥它的魔力。它工作正常,但在某些地方妨碍了可读性,可能是因为我们在阅读类型方面受过训练,如 PascalCase而不是 (pare,the,sised) .
所以我的想法是,就像给出类型 Tuple<int,int>我可以给匿名类型 (int x, int y) 的别名别名。然后我可以使用别名或匿名类型,具体取决于我认为更具可读性的内容。
(我的真实代码比 x&y 稍微复杂一些)

最佳答案

需要注意的2件事

  1. using 指令需要已知的命名空间或类型
  2. 当元组声明为 (int x, int y) t = ... 你只有编译器命令但没有类型。

如果你将变量声明为元组,编译器会生成类似这样的东西

[System.Runtime.CompilerServices.TupleElementNames(new string[] {"x", "y"})]
System.ValueTuple<int, int> myVar = ...

我们在这里讨论的是语法糖,它使元组的使用更容易,命名项在设计时可用,而实际类型在编译时生成。但是某些指令等需要已知类型。因此,您在导入不存在的类型时遇到问题。

Check this article

关于c# - 使用 using 声明一个匿名元组;可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53547453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com