gpt4 book ai didi

c# - 何时在 C# 中使用 Value 关键字

转载 作者:行者123 更新时间:2023-11-30 19:06:46 25 4
gpt4 key购买 nike

我正在使用 custom serializer在 c# 中,为了使用字典序列化/反序列化对象。但是在反序列化过程中,字典对象没有被正确设置。见代码:

public DictionarySerializer<String, Point> jointDictionary
{
get { return _jointDictionary; }
set { _jointDictionary = jointDictionary; }
}

返回的 jointDictionary 对象是空的,但是在调试器线程中我注意到一个“值”对象包含我的字典的内容。将我的代码更改为以下解决了我的问题:

public DictionarySerializer<String, Point> jointDictionary
{
get { return _jointDictionary; }
set { _jointDictionary = value; }
}

我已经阅读了“value”关键字并了解到它是 C# 中的一个保留字,用于指定客户端试图用来设置对象的值。所以我的问题是,为什么 jointDictionary 引用不能像我第一次尝试那样工作? value 关键字的正确用法是什么?

最佳答案

关键字 value 表示传递给属性的值。您应该始终在属性 setter 中使用它。

在您使用 jointDictionary 的情况下,您绑定(bind)到属性 getter。这使得

set { _jointDictionary = jointDictionary; }

编译为

set { _jointDictionary = this.jointDictionary; } 

因为它访问了属性 getter,所以它真的变成了

set { _jointDictionary = _jointDictionary; }

关于c# - 何时在 C# 中使用 Value 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979581/

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