gpt4 book ai didi

c# - 是否可以在其get和set中获取属性名称的字符串?

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

我想从数据库中存储和检索我的配置。我编写了两个方法 setConfig(“configName”, value)getConfig(“configName”) 并在我的属性中使用它们:

public long MyConfig1
{
get
{
return getConfig("MyConfig1");
}
set
{
setConfig("MyConfig1", value);
}
}

但我必须为所有属性写名称字符串。是否可以获取名称或对 set 中当前属性的任何引用并在 C# 中获取?像这样:

public long MyConfig1
{
get
{
return getConfig(getName(this));
}
set
{
setConfig(getName(this), value);
}
}

最佳答案

如果您有权访问 getConfigsetConfig 方法,请按如下所示修改这些方法。这是最干净的解决方案。

    // using System.Runtime.CompilerServices;

public long MyConfig1
{
get
{
return getConfig();
}
}

private long getConfig([CallerMemberName] string propertyName = null)
{
}

但是,如果您无权修改这些方法,请在每个 setter 和 getter 中使用 nameof

    public long MyConfig1
{
get { return getConfig(nameof(MyConfig1)); }
}

关于c# - 是否可以在其get和set中获取属性名称的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43570768/

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