我想傳遞一個函數的類屬性(或者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的每個布爾屬性寫一次這個方法(在這個例子中是三次,一次是a,b和c)?
我試圖避免給Flags一個布爾值的數組,以試圖讓結果代碼易於閱讀。我正在編寫一個供相對缺乏經驗的編程人員使用的庫。
謝謝
(有道歉,如果這是Passing property as parameter in method愚弄的人,我也不太知道它是同樣的問題)
你可以用一個簡單的LINQ查詢替換你的整個方法。 – SLaks
+1首先檢查重複的問題。 – wllmsaccnt
可能重複[如何傳遞一個類的屬性作爲方法的參數?](http://stackoverflow.com/questions/1178574/how-can-i-pass-a-property-of-a -class-as-a-parameter-of-method) – nawfal