C# 重新更新「;“关键”;价值不以“反映”;ForEach“;
我有一个下面的类,我正在设置“关键”值 现在,当我添加一些“消息”和“优先级”时,“Key”值会自动出现C# 重新更新「;“关键”;价值不以“反映”;ForEach“;,c#,C#,我有一个下面的类,我正在设置“关键”值 现在,当我添加一些“消息”和“优先级”时,“Key”值会自动出现 问题在于键的getter 假设您希望返回由其他代码分配的键值,或者返回{Message}:{Priority}的组合,否则返回 您当前的代码: public string Key { get { return _key = $"{Message}:{Priority}"; } } 当您访问键时,将$“{Message}:{Priority}”字符串分
问题在于
键的getter
假设您希望返回由其他代码分配的键
值,或者返回{Message}:{Priority}
的组合,否则返回
您当前的代码:
public string Key
{
get
{
return _key = $"{Message}:{Priority}";
}
}
当您访问键
时,将$“{Message}:{Priority}”
字符串分配给\u键
,然后返回
因此,无论您将Key
设置为什么值,始终会返回$“{Message}:{Priority}”
如果您更改了设置,则可以改为执行此操作:
public string Key
{
get
{
return _key ?? $"{Message}:{Priority}";
}
}
通过此更改,我们使用空合并运算符,如果操作数不为空(例如,\u key
),它将返回左侧操作数;否则,它将返回右侧操作数(例如字符串$“{Message}:{Priority}”
)
如果\u Key
为null
(即您没有为其分配任何内容)问题在于Key
的getter
假设您希望返回由其他代码分配的键
值,或者返回{Message}:{Priority}
的组合,否则返回
您当前的代码:
public string Key
{
get
{
return _key = $"{Message}:{Priority}";
}
}
当您访问键
时,将$“{Message}:{Priority}”
字符串分配给\u键
,然后返回
因此,无论您将Key
设置为什么值,始终会返回$“{Message}:{Priority}”
如果您更改了设置,则可以改为执行此操作:
public string Key
{
get
{
return _key ?? $"{Message}:{Priority}";
}
}
通过此更改,我们使用空合并运算符,如果操作数不为空(例如,\u key
),它将返回左侧操作数;否则,它将返回右侧操作数(例如字符串$“{Message}:{Priority}”
)
如果\u Key
为null
(即您没有为其分配任何内容)如果将Key
更改为返回键,则返回分配给键的值,或字符串$“{Message}:{Priority}”
$“{Message???“NA”}:{Priority???“NA”}”代码>,情况如何?您的getter正在将构造的字符串分配给\u key
,然后返回它。@Brendan Green,令人惊讶的是,它能按预期工作,但这是什么呢??这里是什么意思?这是空比较运算符,如果_键为空,它将选择其他值null@user2994834查看我的答案。但我的密钥不是空的,如果您将Key
更改为simplyreturn\u Key$“{Message???“NA”}:{Priority???“NA”}”代码>,情况如何?您的getter正在将构造的字符串分配给\u key
,然后返回它。@Brendan Green,令人惊讶的是,它能按预期工作,但这是什么呢??这里是什么意思?这是空比较运算符,如果_键为空,它将选择其他值null@user2994834查看我的答案。但我的密钥不是空的,它在使用“ABC”更新时有一些值。你可以猜,OP需要什么,我完全不确定:)+1你可以猜,OP需要什么,我完全不确定:)+1
public string Key
{
get
{
return _key ?? $"{Message}:{Priority}";
}
}