C#如何获得对象的成员对象
答案:3 悬赏:80 手机版
解决时间 2021-12-04 12:43
- 提问者网友:贪了杯
- 2021-12-03 17:47
C#如何获得对象的成员对象
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-12-03 17:55
写了个控制台程序
public class Student
{
public string address;
}
class Program
{
static void Main(string[] args)
{
Program s = new Program();
s.S(new Student() { address = "yy" });
Console.ReadLine();
}
public void S(object y)
{
Type s = y.GetType();
string f = (string)s.GetField("address").GetValue(y);
Console.WriteLine(f);
}
}
引用using System.Reflection; 反射机制追问s.S(new Student() { address = "yy" });
不行的,不知道Student类型追答如果你不知道Student类型,怎么new出来呢?
public class Student
{
public string address;
}
class Program
{
static void Main(string[] args)
{
Program s = new Program();
s.S(new Student() { address = "yy" });
Console.ReadLine();
}
public void S(object y)
{
Type s = y.GetType();
string f = (string)s.GetField("address").GetValue(y);
Console.WriteLine(f);
}
}
引用using System.Reflection; 反射机制追问s.S(new Student() { address = "yy" });
不行的,不知道Student类型追答如果你不知道Student类型,怎么new出来呢?
全部回答
- 1楼网友:像个废品
- 2021-12-03 19:07
Student s = new Student();
如果是静态类则可直接引用。你的Address又是什么类型?
如果是静态类则可直接引用。你的Address又是什么类型?
- 2楼网友:拜訪者
- 2021-12-03 18:24
用反射,成员名称确定,还是成员类型确定?
如果是名称确定,则用 obj.GetType().GetMember("address")[0].GetValue(obj)
如果是类型确定,则用 obj.GetType().GetMembers()获取成员列表,然后依次判断类型,等获取到指定的成员信息后,用 GetValue(obj)则可
上述根据印象写的,没测试追问obj.GetType().GetMember("address")[0]貌似没有GetValue(obj)方法追答你用GetField或GetProperty试试
如果是名称确定,则用 obj.GetType().GetMember("address")[0].GetValue(obj)
如果是类型确定,则用 obj.GetType().GetMembers()获取成员列表,然后依次判断类型,等获取到指定的成员信息后,用 GetValue(obj)则可
上述根据印象写的,没测试追问obj.GetType().GetMember("address")[0]貌似没有GetValue(obj)方法追答你用GetField或GetProperty试试
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯