gpt4 book ai didi

c# - 特定顺序的属性

转载 作者:行者123 更新时间:2023-11-30 12:09:22 26 4
gpt4 key购买 nike

我有一个使用反射获取类属性的工具:

foreach (MemberInfo member in typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public))
{
WriteValue(streamWriter, member.Name);
}

有没有办法让“GetProperties”按照它们在类中定义的顺序返回 MemberInfo。我对此表示严重怀疑,但我想我会问。

class Person
{
public int Id { get; set; }
public int Age { get; set; }
}

我想按以下顺序获取 MemberInfo:Id、Age

最佳答案

[警告:请自行决定使用,因为这些显然是 Microsoft 的实现细节,可能会在未来的版本中更改]

更新:单声道seems to work too

当我偶然发现这个时,我观察到自 v3.5 以来使用 MS 编译器的一致行为:

using System;
using System.Linq;
using System.Reflection;


namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
typeof(Test).GetMembers(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
.OrderBy(member => member.MetadataToken).ToList()
.ForEach(member => Console.WriteLine(member.Name));

Console.ReadLine();
}
}

public class Test
{
public int SecondProperty { get; set; }
public int FirstProperty { get; set; }

}
}

关于c# - 特定顺序的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21595249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com