gpt4 book ai didi

c# - system.reflection 问题,GetFields 不返回所有内容

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:14 24 4
gpt4 key购买 nike

我对 System.Reflection 有点问题。请看附件代码:

class Program
{
public static FieldInfo[] ReflectionMethod(object obj)
{
var flags = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly;
return obj.GetType().GetFields(flags);
}
static void Main()
{
var test = new Test() { Id = 0, Age = 12, Height = 24, IsSomething = true, Name = "Greg", Weight = 100 };
var res = ReflectionMethod(test);
}
}

public class Test
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public bool IsSomething { get; set; }
public int Weight { get; set; }
public int Height { get; set; }
public int CalculationResult => Weight * Height;

public Test()
{

}
}

似乎 getfields 方法没有获取计算属性 CalculationResult。我假设我需要使用另一个标志,但我不知道是哪一个。

提前致谢,如有必要,我很乐意提供更多信息。

最佳答案

那是因为它是一个属性而不是一个字段。

=> 是 getter 的语法糖,它是一个属性。所以它等价于:

public int CalculationResult 
{
get
{
return Weight * Height;
}
}

所以你需要使用.GetProperties(flags)

关于c# - system.reflection 问题,GetFields 不返回所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38704241/

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