用反射控制的,不过获取属性名称的方法,用方法形式获取的,不知道消耗大不大
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Qxun.Framework.Utility;
using System.Linq.Expressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("int类型=》" + typeof(int).Name);
Console.WriteLine(GetPropertyName<GetProperty>(u=>u.Name1));
//这个是拿所有名称的,不是那么灵活
string name = typeof(GetProperty).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)[1].Name;
Console.WriteLine(name);
Console.ReadKey();
}
public static string GetPropertyName<T>(Expression<Func<T,string>> expr)
{
var name = ((MemberExpression)expr.Body).Member.Name;
return name;
}
}
public class GetProperty{
public string Name1 { get; set; }
public string Name2 { get; set; }
public string Name3 { get; set; }
}
}