gpt4 book ai didi

c# - 获取属性名称的扩展方法

转载 作者:太空狗 更新时间:2023-10-29 23:55:31 24 4
gpt4 key购买 nike

我有一个扩展方法来获取属性名称

public static string Name<T>(this Expression<Func<T>> expression)
{
MemberExpression body = (MemberExpression)expression.Body;
return body.Member.Name;
}

我称它为

string Name = ((Expression<Func<DateTime>>)(() => this.PublishDateTime)).Name();

这工作正常并返回我 PublishDateTime 作为字符串。

但是我对调用语句有疑问,它看起来太复杂了,我想要这样的东西。

this.PublishDateTime.Name()

有人可以修改我的扩展方法吗?

最佳答案

试试这个:

public static string Name<T,TProp>(this T o, Expression<Func<T,TProp>> propertySelector)
{
MemberExpression body = (MemberExpression)propertySelector.Body;
return body.Member.Name;
}

用法是:

this.Name(x=>x.PublishDateTime);

关于c# - 获取属性名称的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com