2 回答
TA贡献1806条经验 获得超8个赞
这些是可能的方法:
//APPROACH 1
List<int> items = GetIntegerStuff();
if (items == null)
{
items = new List<int>();
}
//APPROACH 2
List<int> items = GetIntegerStuff() ?? new List<int>();
//APPROACH 3
List<int> items = GetIntegerStuff();
items = items ?? new List<int>();
//APPROACH 4
List<int> items = GetIntegerStuff();
items = items == null ? new List<int>() : items;
我会选择2号,从我的角度来看,它是最干净的。
为了完整起见,在某些情况下您可以找到类似的内容:
class Program
{
private static List<int> _items = new List<int>();
private static List<int> Items
{
get
{
return _items;
}
set
{
_items = value ?? new List<int>();
}
}
static void Main(string[] args)
{
//APPROACH 5
Items = GetIntegerStuff();
}
private static Random Random = new Random();
private static List<int> GetIntegerStuff()
{
switch (Random.Next(0, 2))
{
case 0:
return null;
break;
default:
return new List<int>();
break;
}
}
}
这对性能有害吗?
List<int> items = GetIntegerStuff();
items = items ?? new List<int>();
不,但它实际上会执行更多关于以下方面的指令:
List<int> items = GetIntegerStuff();
if (items == null)
{
items = new List<int>();
}
或者
List<int> items = GetIntegerStuff() ?? new List<int>();
- 2 回答
- 0 关注
- 185 浏览
添加回答
举报