怎么获取属性名称
如何获取属性名称? [解决办法]引用:引用:class Program{public string age { get set }static void Main
如何获取属性名称?
[解决办法] 引用: 引用: class Program { public string age { get; set; } static void Main() { Type myType=this.GetType(); myType.Name; } } 这是类型名,我想要的是属性名字age public string age { get; set; } public string id { get; set; } static void Main(string[] args) { Program p = new Program(); Type type = p.GetType(); foreach (PropertyInfo pinfo in type.GetProperties()) Console.WriteLine(pinfo.Name); Console.ReadLine(); }
[解决办法] 用反射获取属性名
[解决办法] using System.Reflection;
如 huangwenquan123 所答。
[解决办法] static void Test(Type type, object value)
{
//通过type得到"Program.age".
//或许我传的这个参数不对,但是用什么方法在这里可以得到这个字符串"Program.age",前提是Test方法的参数只有temp.age
}
value是干嘛用的,value跟得到Program.age有什么关系吗?
LZ再描述下你的详细需求吧,还是没说清楚
[解决办法] 貌似需要使用反射。
[解决办法] 其实你的问题是,如何将 temp.age 这个 实例变量.属性 这种结构 转化为 字符串 "temp.age"
[解决办法] temp.age传递给Test函数后
Test函数得到的信息仅仅是一个string类型的对象,Test函数甚至都不知道这个string对象是从哪里传递过来的
所以你的需求基本无法实现
[解决办法] 看看这个贴子也许有点帮助http://topic.csdn.net/u/20110709/17/49adf99d-4e7b-4489-b144-d633fdfb85f4.html?69710
[解决办法] class Program
{
static void Main(string[] args)
{
Person p = new Person();
Type t = typeof(Person);
string name = t.Name + "." + ReflectionUtility.GetPropertyName(() => p.Age);
}
public static class ReflectionUtility
{
public static string GetPropertyName<T>(Expression<Func<T>> expression)
{
MemberExpression body = (MemberExpression)expression.Body;
return body.Member.Name;
}
}
}
public class Person
{ public string Name { get; set; } public int Age { get; set; } }