gpt4 book ai didi

c# - 在 C# 中使用元组,(A, B, C) vs Tuple

转载 作者:行者123 更新时间:2023-12-02 15:47:13 25 4
gpt4 key购买 nike

我创建了一个方法:

public static Tuple<string, string, string> SplitStr(string req)
{
//...
return (A, B, C)
}

它提示"CSOOZQ: Cannot implicitly convert type '(strinq _keyword, strinq _filterCondition, strinq _filterCateqory)' to 'System.Tuple<strinq, strinq, string)‘"

但是如果代码:

public static (string, string, string) SplitStr(string req)
{
//...
return (A, B, C)
}

错误消失了。从报错来看,好像是元组的括号形式,还有一个Tuple<>是不同的。

  1. 使用括号形式安全吗?
  2. 有什么区别,为什么有两种类型的 Tuple ?我应该使用 Tuple<> 吗?在我的情况下?如何返回元组?

谢谢。

最佳答案

类型 Tuple<T1,T2,T3> 不同于类型 ValueTuple<T1,T2,T3> .一般使用 value-tuples优于引用类型的元组,因为:

  1. 它们不会给垃圾收集器增加压力。
  2. 有语言支持为值元组的成员命名。

我的建议是申报 SplitStr像这样:

public static (string First, string Middle, string Last) SplitStr(string request)
{
// ...
return (a, b, c)
}

然后您可以像这样使用它:

var parts = SplitStr(request);
// Use parts.First, parts.Middle and parts.Last

...或使用元组解构,这对于引用类型的元组也是可能的。

var (first, middle, last) = SplitStr(request);

关于c# - 在 C# 中使用元组,(A, B, C) vs Tuple<string, string, string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73739668/

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