【发布时间】:2011-09-27 12:51:10
【问题描述】:
我想传递一个类属性(或者如果需要,一个 getter/setter)引用到一个函数。
例如,我有一个包含许多布尔标志的类数组。
class Flags
{
public bool a;
public bool b;
public bool c;
public string name;
public Flags(bool a, bool b, bool c, string name)
{
this.a = a;
this.b = b;
this.c = c;
this.name = name;
}
}
我可以编写一个方法,返回所选标志为真的标志的所有实例
public Flags[] getAllWhereAisTrue(Flags[] array)
{
List<Flags> resultList = new List<Flags>();
for (int i = 0; i < array.Length; i++)
{
if (array[i].a == true) // for each Flags for which a is true
{ // add it to the results list
resultList.Add(array[i]);
}
}
return resultList.ToArray(); //return the results list as an array
}
我将使用什么来允许我将类属性作为参数传递,从而使我不必为 Flags 的每个布尔属性编写一次此方法(在此示例中为 3 次,一次用于 a,b c)?
我试图避免给 Flags 一个布尔数组,以使生成的代码易于阅读。我正在编写一个供相对缺乏经验的编码人员使用的库。
谢谢
(如果这是Passing property as parameter in method的骗子,我很抱歉,我不太清楚这是否是同一个问题)
【问题讨论】:
-
您可以用一个简单的 LINQ 查询替换整个方法。
-
+1 关于首先检查重复项的问题。
标签: c# generics parameters properties