我写这段代码:
private bool test(List<string> Lst = new List<string>() { "ID" })
{
return false;
}
我想为&#34; Lst&#34;设置默认值但是来自&#34; new&#34;关键词。 任何想法?
答案 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>();
}
}