首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >何时使用属性以及何时在内部类上使用内部变量的策略?

何时使用属性以及何时在内部类上使用内部变量的策略?
EN

Stack Overflow用户
提问于 2010-05-23 10:11:08
回答 1查看 584关注 0票数 4

在我的几乎所有类中,我都有一个属性和内部类变量混合的。我总是选择一个或另一个规则“属性(如果您需要它),类变量(如果不是)”。但还有许多其他问题使我经常反思这一点,例如:

  • 在某个时候我想从类外部使用一个内部变量,所以我必须将它重构成一个属性,这让我想知道为什么我不只是创建所有的内部变量属性,以防我必须从外部访问它们,因为大多数类都是内部类,所以它不会在API上公开,所以内部变量是否可以从类外部访问或不使用
  • 并不重要,但是因为C#不允许您实例化定义中的例如List<string>属性,然后,这些属性必须在每个可能的构造函数中被初始化,所以这些变量--我宁愿有内部变量--只是为了保持事物的清洁,因为如果构造函数/方法参数是camel情况,并且您将它们分配给pascal case属性,并且您将它们分配给pascal case属性,而不是查看templateIdCode和必须四处查看它是否是局部变量、方法参数或内部类变量,那么这些变量在一个地方(
  • C#代码)读取时会更加清晰,例如,当您看到TemplateIdCode = templateIdCode时,更容易看到这个参数被分配给类属性。这将是始终仅在内部classes.

上使用属性的的参数。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
public class TextFile
{
    private string templateIdCode;
    private string absoluteTemplatePathAndFileName;
    private string absoluteOutputDirectory;
    private List<string> listItems = new List<string>();

    public string Content { get; set; }
    public List<string> ReportItems { get; set; }

    public TextFile(string templateIdCode)
    {
        this.templateIdCode = templateIdCode;
        ReportItems = new List<string>();
        Initialize();
    }
    ...

在创建内部(非API)类时,您在决定应该创建内部类变量还是属性时有哪些策略?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-23 10:22:27

如果我在以后发现需要公共访问的私有变量,我只创建一个属性,将其作为私有成员使用,例如:

代码语言:javascript
代码运行次数:0
运行
复制
private List<string> listItems = new List<string>();

Public List<string> ListItems
{
     get{return listItems;}
     set{listItems = value;}
}

这允许您创建对数据的公共访问,而不必重构任何代码。它还允许您在私有成员中初始化数据,而不必在构造函数中进行初始化。

另一个优点是,您想要对任何访问公共属性的人执行的数据的任何修改都可以在属性的getter中完成。尽管VS2008引入了自动属性作为一种特性,但我仍然更喜欢属性的VS2005风格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2891309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档