我有一个函数想要返回两个值。这可能吗?
这是我的代码,但它似乎不喜欢我想返回两个值:
public string PlayerCards(string player1C1, string player1C2)
{
generatedCard = randomCard.Next(1, 52);
player1C1 = generatedCard.ToString();
player1C1 = player1C1 + ".png";
return player1C1, player1C2;
}
一些选项:
-
Use an out
范围:
public string PlayerCards(out string x)
返回一个值,并设置out
范围 (x
在这种情况下)到另一个值;调用代码需要指定一个参数out
同样,调用完成后,调用者将能够看到方法中设置的值。
(根本不清楚为什么你要接受参数;你似乎并没有真正使用它们。)
返回一个ValueTuple<string, string>
,最好使用 C# 7 元组来提供元素名称
- 返回一个
Tuple<string, string>
- 创建一个新类型来将两个值存储在一起,假设这是一个有意义的组合。如果这些值以您将在其他地方使用的方式相关,那么这绝对是一个不错的选择。例如,您可以创建一个方法,而不是返回一个字符串表示一张牌的花色和一个字符串的值。
PlayingCard
type.
- 将代码重构为两个方法调用,每个方法调用返回一个值
根本不清楚您的代码想要做什么 - 方法的名称不清楚并且您不使用参数。当您明确了该方法试图实现的目标时(无论是对您自己还是对我们),答案可能会变得更加明显。
我还鼓励您在适当的情况下使用局部变量 - 我怀疑generatedCard
应该是一个局部变量,而不是当前的(大概)实例变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)