gpt4 book ai didi

c# - 如何通过反射获取当前属性名称?

转载 作者:IT王子 更新时间:2023-10-29 03:59:51 24 4
gpt4 key购买 nike

当我在其中时,我想通过反射获取属性名称。可能吗?

我有这样的代码:

public CarType Car
{
get { return (Wheel) this["Wheel"];}
set { this["Wheel"] = value; }
}

因为我需要更多这样的属性,所以我想做这样的事情:

public CarType Car
{
get { return (Wheel) this[GetThisPropertyName()];}
set { this[GetThisPropertyName()] = value; }
}

最佳答案

由于属性实际上只是方法,您可以执行此操作并清理返回的 get_:

class Program
{
static void Main(string[] args)
{
Program p = new Program();
var x = p.Something;
Console.ReadLine();
}

public string Something
{
get
{
return MethodBase.GetCurrentMethod().Name;
}
}
}

如果您分析性能,您应该会发现 MethodBase.GetCurrentMethod() 比 StackFrame 快数英里。在 .NET 1.1 中,您在 Release模式下也会遇到 StackFrame 的问题(从内存中我认为我发现它快了 3 倍)。

也就是说,我确信性能问题不会造成太大问题 - 尽管关于 StackFrame 缓慢的有趣讨论可以是 found here .

如果您担心性能,我想另一种选择是创建一个 Visual Studio Intellisense 代码片段,它会为您创建属性并创建一个与属性名称相对应的字符串。

关于c# - 如何通过反射获取当前属性名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206023/

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