gpt4 book ai didi

C#6 : nameof() current property in getter/setter

转载 作者:可可西里 更新时间:2023-11-01 08:58:03 26 4
gpt4 key购买 nike

有没有办法在 getter/setter 中获取当前属性的名称?

像这样:

public string MyProperty
{
get { return base.Get<string>(nameof(ThisProperty)); }
set { base.Set<string>(nameof(ThisProperty), value); }
}

nameof(ThisProperty) 应该解析为“MyProperty”。

最佳答案

nameof 无法做到这一点,但有更好的方法(自 C# 5 起可用)。您可以使 propertyName 参数可选,并将 CallerMemberName 属性应用于它:

protected void Set<T>(T value, [CallerMemberName] string propertyName = null)
{
...
}

protected T Get<T>([CallerMemberName] string propertyName = null)
{
...
}

现在,如果您省略 propertyName 的参数,则隐式传递当前成员名称:

public string MyProperty
{
get { return base.Get<string>(); } // same as calling Get<string>("MyProperty")
set { base.Set<string>(value); } // same as calling Set<string>(value, "MyProperty")
}

关于C#6 : nameof() current property in getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337881/

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