首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么获取属性名称

2013-04-09 
如何获取属性名称? [解决办法]引用:引用: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; }
    }

热点排行