是否有一种简单的方法可以在c#中返回两种不同的运算符类型

时间:2016-01-30 06:38:48

标签: c# return-type

我正在为我正在玩的游戏制作一个GUI的东西,想要测试一些东西,但是我遇到了这个奇怪的问题,我需要在同一个方法中返回一个String和一个Double。我的方法如下:

public static modifiers(string name, double cost)
{
    //long list of Modifier strings

    //long list of Modifier costs

    return name, cost;
}

我知道那里并不多,但我只想要它返回名称和成本,我不知道该怎么做。如果这是一个很长的抽奖过程,那么请说再做第二种方法会更好。我不想让这需要更长的时间。

2 个答案:

答案 0 :(得分:3)

没有。基本C#语法告诉您返回只能返回一个对象。

这意味着:您可以轻松返回包含2个变量/属性的结构。如果你可以接受一个对象(不是结构)并且不想自己编写 - 请使用元组。

答案 1 :(得分:1)

使用DictionaryList<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"];