我正在为我正在玩的游戏制作一个GUI的东西,想要测试一些东西,但是我遇到了这个奇怪的问题,我需要在同一个方法中返回一个String和一个Double。我的方法如下:
public static modifiers(string name, double cost)
{
//long list of Modifier strings
//long list of Modifier costs
return name, cost;
}
我知道那里并不多,但我只想要它返回名称和成本,我不知道该怎么做。如果这是一个很长的抽奖过程,那么请说再做第二种方法会更好。我不想让这需要更长的时间。
答案 0 :(得分:3)
没有。基本C#语法告诉您返回只能返回一个对象。
这意味着:您可以轻松返回包含2个变量/属性的结构。如果你可以接受一个对象(不是结构)并且不想自己编写 - 请使用元组。
答案 1 :(得分:1)
使用Dictionary
或List<KeyValuePair<string,double>>
:
public static List<KeyValuePair<string,double>> modifiers(string name, double cost)
{
List<KeyValuePair<string, double>> lst = new List<KeyValuePair<string, double>>();
lst.Add(new KeyValuePair<string, double>(name, cost));
return lst;
}
或者,
public static Dictionary<string,double> modifiers(string name, double cost)
{
Dictionary<string, double> lst = new Dictionary<string, double>();
lst.Add(name, cost);
return lst;
}
使用Dictionary
的检索过程非常简单:
public static Dictionary<string,double> modifiers()
{
Dictionary<string, double> lst = new Dictionary<string,double>();
lst.Add("test1", 10.5);
lst.Add("test2", 10.5);
lst.Add("test3", 10.5);
lst.Add("test4", 10.5);
return lst;
}
var items = modifiers();
double test1DoubleVal = items["test1"];