这种方式在c#中传递参数非常好

时间:2010-07-23 10:28:20

标签: c#

在我的应用中,我需要一个List作为参数传递。

我写了

List<stuff.Inventory> inv = new List<stuff.Inventory>();
inv.Add(stuff.Inventory.NotAvailable);
inv.Add(stuff.Inventory.None);
inv.Add(stuff.Inventory.Coming);

if (stuff.isStuffinInv(inv, prodID))
{
    // ...
}

我的方式是对的还是需要任何新的方法来做到这一点

4 个答案:

答案 0 :(得分:6)

嗯,除了命名约定和缩进之外,它看起来还不错。

使用C#3,您可以使用集合初始值设定项,如下所示:

List<Inventory> inventory = new List<Inventory>
{
    Inventory.NotAvailable, Inventory.None, Inventory.Coming
};
if (stuff.isStuffInInv(inventory, prodID))
...

这是一种通常更具可读性的方法,IMO。

答案 1 :(得分:5)

从它的外观来看,库存似乎是一个枚举。您是否考虑过使用FlagsAttribute

答案 2 :(得分:2)

List<stuff.Inventory> inv = new List<stuff.Inventory>()
{
   stuff.Inventory.NotAvailable, 
   stuff.Inventory.None, 
   stuff.Inventory.Coming
};

根据你所描述的,enum会更合适吗?

答案 3 :(得分:0)

该代码没有什么特别的错误,但您可能需要考虑使用LINQ查询列表,而不是使用isStuffInInv方法。

if (inv.Any(x => x._?_ == prodID));