![]() |
1
116
在编写程序时,非常常见的情况是希望逻辑地将一组没有足够公共性的值组合在一起,以证明创建一个类是合理的。 许多编程语言允许您以逻辑方式将一组原本不相关的值组合在一起,而无需仅以一种方式创建类型:
逻辑上,这与方法M完全相同,方法M只接受一个参数,即int、string和double的三元组。但我希望你不会真的做出:
“在比类更轻量级的结构中将一堆不相关的数据组合在一起”的概念在很多地方都很有用,而不仅仅是在方法的形式参数列表中。当一个方法有两个要返回的内容时,或者当您想从两个数据而不是一个数据中为字典设置关键字时,这种方法非常有用,以此类推。 像F#这样的支持元组类型的语言为用户提供了极大的灵活性;它们是一组非常有用的数据类型。BCL团队决定与F团队合作,对框架的一种元组类型进行标准化,以便每种语言都能从中受益。 语言 |
![]() |
2
22
|
![]() |
3
12
它提供了一种替代
它还允许您使用内置类型作为返回类型,如果您需要做的只是混搭两个或三个现有类型,并且您不希望仅为这种组合添加类/结构(是否希望函数可以返回匿名类型?这是对这种情况的部分回答。) |
![]() |
4
10
|
![]() |
5
5
对于从函数返回两个值非常有用 |
![]() |
6
4
就我个人而言,我发现元组是开发的一个迭代部分,当你处于一个调查周期,或者只是“玩”的时候。因为元组是泛型的,所以在使用泛型参数时我倾向于考虑它—特别是在希望开发一段泛型代码时,我从代码末尾开始,而不是问自己“我希望这个调用看起来怎么样?”。
当然,总是有扩展方法的——但通常你不想把多余的代码扩展到泛型实现。 有时我想把数据表示成一个元组,但却没有元组可用(VS2008)在这种情况下,我刚刚创建了自己的元组类-我没有使它成为线程安全的(不可变的)。
我倾向于首先让这个班成为你已经在工作的那个班的一个公共成员。但当它扩展到仅仅是一个值集合之外时,它就得到了它自己的文件,我将它从包含类中移出。 所以现在回想起来,我相信我用元组的时候,我不想去写一个类,只想想想我现在写的东西。这意味着半个小时后,元组的签名可能会在文本中发生很大的变化,同时我要弄清楚这个方法需要什么数据,以及它如何返回它将返回的值。 如果我有机会重构代码,那么我经常会质疑元组在其中的位置。 |
![]() |
7
3
C#7引入了对元组的语言支持,它使用新的、更高效的元组类型为元组字段启用语义名称。
从方法返回多个值:
|
![]() |
8
1
当您不想创建特定类型时,元组通常用于从函数返回多个值。如果您熟悉Python的话,Python已经有很长一段时间了。 |
![]() |
9
1
|
![]() |
10
1
一个常见的用法可能是避免创建只包含2个字段的类/结构,而是创建一个元组(或者现在创建一个KeyValuePair)。 用作返回值,避免传递N个参数。。。 |
![]() |
11
0
|
![]() |
12
0
它在从函数返回值时非常有用。我们可以有多个值回来,这是一个相当节省在某些情况下。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |