gpt4 book ai didi

c# - 有没有办法在接收 ValueTuple 作为参数时命名字段?

转载 作者:行者123 更新时间:2023-12-05 09:26:40 24 4
gpt4 key购买 nike

有一个方法接收一个ValueTuple,修改后返回。在这种情况下,我可以在方法参数中指定 ValueTuple 的字段名吗?

private static void Operation()
{
var tuple = (X: 10, Y: 20);
var changeTuple = ChangeTuple(tuple);
}

private static ValueTuple<int, int> ChangeTuple(ValueTuple<int, int> tuple)
{
tuple.Item1 = 100; // ex) tuple.X = 100;
tuple.Item2 = 200; // ex) tuple.Y = 200;
return tuple;
}

最佳答案

是的,您可以简单地替换 ValueTuple<int, int>(int X, int Y) :

private static (int X, int Y) ChangeTuple((int X, int Y) tuple)
{
tuple.X = 100;
tuple.Y = 200;
return tuple;
}

供引用:naming tuple's fields


或者您可以使用 deconstruction :

private static (int X, int Y) ChangeTuple(ValueTuple<int, int> tuple)
{
var (X, Y) = tuple;
X = 100;
Y = 200;
return (X, Y);
}

请注意,在这两种情况下,您都没有修改原始 ValueTuple而是创建一个新的:

  • 第一种情况是因为 ValueTuplestruct , 所以是传值
  • 在第二种情况下,我们显式创建一个名为 ValueTuple 的新对象

关于c# - 有没有办法在接收 ValueTuple 作为参数时命名字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73631268/

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