如何将属性名称作为字符串获取?
例如:
Public int PropertyValue{get;set;}
现在我想将 PropertyValue 作为一个没有反射和没有 foreach PropertyInfo 的字符串
如何将属性名称作为字符串获取?
例如:
Public int PropertyValue{get;set;}
现在我想将 PropertyValue 作为一个没有反射和没有 foreach PropertyInfo 的字符串
我在这里找到了一个解决方案: Workaround for lack of 'nameof' operator in C# for type-safe databinding?
@reshefm 有这个代码的地方:
class Program
{
static void Main()
{
var propName = Nameof<SampleClass>.Property(e => e.Name);
Console.WriteLine(propName);
}
}
public class Nameof<T>
{
public static string Property<TProp>(Expression<Func<T, TProp>> expression)
{
var body = expression.Body as MemberExpression;
if(body == null)
throw new ArgumentException("'expression' should be a member expression");
return body.Member.Name;
}
}
希望这可以帮助 :)