Tôi muốn chuyển thuộc tính lớp (hoặc trình lấy/lấy nếu cần) tham chiếu đến một hàm.Chuyển thuộc tính lớp làm thông số
Ví dụ: tôi có một mảng của một lớp có nhiều cờ boolean.
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;
}
}
tôi có thể viết một phương pháp mà trả về tất cả các trường hợp của Flags mà một lá cờ chọn đúng
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
}
Những gì tôi sẽ sử dụng để cho phép tôi để vượt qua một tài sản lớp như một tham số, như vậy là để cứu tôi khỏi phải viết phương thức này một lần cho mỗi thuộc tính boolean của Flags (trong ví dụ này là ba lần, một lần cho a, b và c)?
Tôi đang cố gắng tránh cho Flags một mảng Booleans trong nỗ lực giữ mã kết quả dễ đọc. Tôi đang viết một thư viện để sử dụng bởi các lập trình viên thiếu kinh nghiệm tương đối.
Cảm ơn bạn
(Với lời xin lỗi nếu điều này là một dupe của Passing property as parameter in method, tôi có thể không hoàn toàn nói nếu đó là vấn đề giống nhau)
Bạn có thể thay thế toàn bộ phương thức bằng truy vấn LINQ tầm thường. – SLaks
+1 về câu hỏi để kiểm tra trùng lặp trước. – wllmsaccnt
có thể trùng lặp của [Làm thế nào tôi có thể vượt qua một tài sản của một lớp như một tham số của một phương pháp?] (Http://stackoverflow.com/questions/1178574/how-can-i-pass-a-property-of-a -class-as-a-parameter-of-a-method) – nawfal