gpt4 book ai didi

C# protected field to private, add property——为什么?

转载 作者:太空狗 更新时间:2023-10-29 22:05:59 24 4
gpt4 key购买 nike

在 Visual Studio 2008 Team System 中,我刚刚对我的一个 C# 项目运行代码分析(从“分析”菜单)。产生的警告之一如下:

Microsoft.Design : Because field 'Connection._domain' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it.

它指的是以下字段:

public abstract class Connection
{
protected string _domain;
}

我不明白这个建议背后的原因。这就是我认为它要我做的:

public abstract class Connection
{
private string _domain;
protected string Domain { get { return _domain; } set { _domain = value; } }
}

两个问题:

  1. 我在代码方面是否正确理解了建议要我做什么?
  2. 为什么要我这样做?

最佳答案

是的,我认为您理解正确 - 尽管在更高版本的 C# 中,有更简洁的编写方式:

public string Domain { get; set; }

为什么?这都是关于封装的。如果按照它的建议进行操作,您以后可以更改 Domain 属性的定义,而不会影响使用该属性的任何调用代码。由于您的类是公开的,并且可以想象到可能会被您未编写的代码调用,这可能非常重要。

关于C# protected field to private, add property——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703382/

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