以前的问题,没有好的方法解决。再发出来请高手看看。
先说说要求啊。
1.类aa,bb没基类。他们都默认继承Object。
2.实现不能只局限为aa,bb。可以适用有name属性的所有类,比如再加个cc,dd,ee方法不改同样适用。
谢谢高手帮忙解决啊。。有点难度~~
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
aa a = new aa();
a.name = "aaa ";
bb b = new bb();
b.name = "bbb ";
cc(传个类进来);//输出类的Name属性
Console.Read();
}
public static void cc(Object obj)
{
//该怎么写
}
}
class aa
{
public string name;
}
class bb
{
public string name;
}
}
------解决方案--------------------public static void cc(Object obj)
{
Type type = obj.GetType();
FieldInfo[] fields = type.GetFields();
for (int i = 0; i < fields.Length; i++)
{
if (fields[i].Name == "name ")
{
string str = (string)fields[i].GetValue(obj);
Console.WriteLine(str);
}
}
}
------解决方案--------------------//直接这样行了
public static void cc(Object obj)
{
Type type = obj.GetType();
FieldInfo f = type.GetField( "name ");
Console.WriteLine((string)f.GetValue(obj));
}