我已经经历过“ 可能已经找到答案的问题”,但没有找到我想要的东西。 我想通过反射使所有成员成为一个类型。当我尝试
1+true
我有19个成员。
我发现某些成员需要特定的BindingFlags。由于我不知道这些标志和不同的成员具有不同的标志,因此我将所有标志传递为:
var type = typeof(int);
var members = type.GetMembers();
for(var i = 0; i < members.Length; i++)
Console.WriteLine($"{i, 2} {members[i]}");
它给了我34名成员。这正是我所需要的。
但是在哪一种更优雅(更短)的方式来吸引所有成员?
答案 0 :(得分:5)
您可以使用LINQ的Aggregate
对所有不同的BindingFlags
值进行或运算:
var flags = Enum.GetValues(typeof(BindingFlags))
.Cast<BindingFlags>()
.Aggregate((x,y) => x | y);