为啥获取私有属性一无所获? (c#) [关闭]
Posted
技术标签:
【中文标题】为啥获取私有属性一无所获? (c#) [关闭]【英文标题】:Why does it get nothing that Getting private Properties? (c#) [closed]为什么获取私有属性一无所获? (c#) [关闭] 【发布时间】:2021-03-17 05:11:42 【问题描述】:public class A
public Info m_Info = new Info();
Main()
Console.WriteLine(m_Info.Property_Count());
public class Info
protected int i_Id;
protected string s_Name;
public int Property_Count()
System.Reflection.PropertyInfo[] data = this.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
foreach(var item in data)
Console.WriteLine(item.Name);
return data.Length;
我正在尝试获取私有或受保护的属性~ 但是data.Length总是返回0,听上去好像什么都没有,为什么呢?
【问题讨论】:
关于类的字段和属性:tutorialspoint.com/csharp/csharp_properties.htm 和 tutorialsteacher.com/csharp/csharp-class 【参考方案1】:您的班级没有任何properties。这些:
protected int i_Id;
protected string s_Name;
是fields。您可以将它们更改为属性:
protected int i_Id get; set;
protected string s_Name get; set;
或者你可以使用GetFields
:
System.Reflection.FieldInfo[] data = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
【讨论】:
以上是关于为啥获取私有属性一无所获? (c#) [关闭]的主要内容,如果未能解决你的问题,请参考以下文章