假设我有以下课程:
public class Target
{
public int field1;
public int field2;
public int Prop1 { get; set; }
public int Prop2 { get; set; }
}
如果我这样做:
foreach(far f in typeof(Target).GetFields())
Console.WriteLine(f.Name);
我会按照声明的顺序获取字段(field1
然后field2
)。如果我做GetProperties
现在,请考虑以下事项:
public class Target
{
public int field1;
public int Prop1 { get; set; }
public int field2;
public int Prop2 { get; set; }
}
当我这样做时:
var members = typeof(Target).GetMembers()
.Where(m => m.MemberType == MemberTypes.Field ||
m.MemberType == MemberTypes.Property);
foreach (var m in members)
Console.WriteLine(m.Name);
我得到了以下输出:
Prop1
Prop2
field1
field2
显然,不是按成员声明的顺序(field1
,Prop1
,field2
和Prop2
)
有什么方法可以按顺序获得会员?
感谢。
编辑:
我关心订单,因为我使用Unity3D(游戏引擎),我正在为某种类型编写自定义编辑器。类型将具有字段和属性,我想按照它们声明的顺序绘制字段/属性。当然,unity确实按照它们声明的顺序绘制字段,但它不绘制属性。这就是为什么我正在制作自己的抽屉/编辑器以支持物业绘制。