【问题标题】:How can we implement Dictionary<string,string> using getter & setter property我们如何使用 getter 和 setter 属性实现 Dictionary<string,string>
【发布时间】:2018-05-18 13:29:07
【问题描述】:

我想在 Dictionary 中实现 getter 和 setter 属性访问,如下所示,

int _number;
public int Number
{
    get
    {
        return this._number;
    }
    set
    {
        this._number = value;
    }
}

如果有任何解决方案来实现字典的 getter 和 setter,请帮助我,因为我们使用静态字典进行本地化的应用程序之一使用了整个应用程序。在 get 方法中,我将检查是否未找到传递的密钥,然后返回密钥。 现在的问题是,如果在字典中找不到键,那么它会给出异常“找不到键”。

提前致谢!

【问题讨论】:

  • 也许可以看看类似的Question on SO
  • 已经有一些方法可以用来代替重新发明轮子。msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx 对于您在问题ContainsKey 中提到的用例,对您来说是有用的方法。它将根据键是否存在于字典中返回 true 或 false。
  • @AsthaSrivastava 我们如何实现 get 方法,提到文章实现了唯一的 Set 方法。我只想在 get 方法中处理条件。
  • 您可以使用TryGetValue,如果密钥不存在则返回false,如果存在则返回true。您的值将是out 变量。

标签: c#


【解决方案1】:

字典已经有安全尝试检索值的方法。

您可以使用ContainsKey,如果在密钥集合中找到密钥,则返回true,否则返回false,
或者您可以使用TryGetValue,它将TValue 作为输出参数,如果找到则返回true,否则返回false。
您无需向字典添加功能,只需了解如何正确使用现有功能即可。

【讨论】:

  • 我知道现有的功能,但事情是代码审查 jr.开发人员用户本地化词典使用完整的应用程序,无需检查条件。并且很难在完整的应用程序中替换/添加该条件。如果有任何方法可以使用 setter 和 getter,那么在声明级别进行更改是可行的。
  • 我看不出像你的提议这样的东西会有什么帮助 - 你仍然需要在代码中找到访问字典值并更改它们的所有位置......
猜你喜欢
  • 1970-01-01
  • 2012-03-01
  • 2019-11-21
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 2014-10-22
  • 2017-11-12
  • 1970-01-01
相关资源
最近更新 更多