在函数中设置List <string>类型参数的默认值

时间:2015-07-30 07:00:47

标签: c# string list

我写这段代码:

 private bool test(List<string> Lst = new List<string>() { "ID" })
    {

        return false;
    }

我想为&#34; Lst&#34;设置默认值但是来自&#34; new&#34;关键词。 任何想法?

4 个答案:

答案 0 :(得分:5)

目前,在C#中无法使用新对象或类初始化参数。

您可以将默认值保留为null,并在您的方法中创建您的类实例:

private bool test(List<string> Lst = null)
{
    if(Lst == null)
    {
       Lst = new List<string> { "ID" };
    }
    return false;
}

答案 1 :(得分:2)

这是不可能的。有关允许的值,请参阅MSDN docs

可能的替代方法是使用覆盖和/或默认值null。使用:

// Override
private bool test()
{
    return test(new List<string>() { "ID" });
}

// default of null
private bool test(List<string> Lst = null)
{
    if (Lst == null) {
        Lst = new List<string>() { "ID" };
    }

    return false;
}

答案 2 :(得分:1)

您可以将默认值设置为null,然后在第一行

中将其设置为所需的默认值
private bool test(List<string> Lst = null)
{
    List<string> tempList; // give me a name
    if(Lst == null)
         tempList = new List<string>() { "ID" };
    else 
         tempList = Lst;

    return false;
}

现在您可以按照您想要的方式使用tempList

答案 3 :(得分:-1)

不太确定要实现的目标,但如果列表为null,则可以使用ref初始化列表。

void SetDefault(ref List<string> list)
{
    if(list == null)
    {
        list = new List<string>();
    }
}