gpt4 book ai didi

c# - 无法使用此代码和表达式 api 获取此属性名称

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:36 26 4
gpt4 key购买 nike

我有以下类,我需要获取它的属性名称:

public class PMLButtonData
{
public int BackgroundColorID
{
get;
set;
}

public string Callback
{
get;
set;
}
}

要获取我正在使用此功能的名称
public static string GetPropertyName<T>(Expression<Func<T, object>> lambda)
{
MemberExpression member = lambda.Body as MemberExpression;
PropertyInfo property = member.Member as PropertyInfo;

return property.Name;
}

我可以使用以下代码获取回调属性名称:
string name = GetPropertyName<PMLButtonData>(x => x.Callback);

但是其他属性的相同代码不起作用:
string name = GetPropertyName<PMLButtonData>(x => x.BackgroundColorID);

它们之间的唯一区别是数据类型,因此我将 Callback 更改为 int 并且代码不再使用此属性。如果它是整数,为什么我不能以这种方式获取属性的名称?

最佳答案

我猜它的拳击int进入 object第一的。试试这个签名:

public static string GetPropertyName<T, T2>(Expression<Func<T, T2>> lambda)

关于c# - 无法使用此代码和表达式 api 获取此属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29033855/

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