当前位置:  开发笔记 > 编程语言 > 正文

从同一个类,通过访问器或直接访问属性的最佳方法是什么?

如何解决《从同一个类,通过访问器或直接访问属性的最佳方法是什么?》经验,为你挑选了1个好方法。

这是我不太一致的事情,并且总是对别人的行为感到好奇.

您如何访问内部属性(私有或公共)?

例如,你有这个属性:

Private _Name As String

Public Property Name() As String
    Get
        Return _Name
    End Get
    Set(ByVal value As String)
        _Name = value
    End Set
End Property

在另一个函数中的同一个类中,您更喜欢哪一个?为什么?

_Name = "Johnny"

要么

Name = "Johnny"

忽略我使用Name而不是Me.Name的事实.



1> Jon Skeet..:

我个人更喜欢尽可能使用该物业.这意味着您仍然可以获得验证,并且您可以轻松地在属性访问上添加断点.当您尝试对两个相互验证的属性进行更改时,这不起作用 - 例如,"最小和最大"对,其中每个属性都具有min <= max始终的验证约束.你可能有(C#):

public void SetMinMax(int min, int max)
{
    if (max > min)
    {
        throw new ArgumentOutOfRangeException("max";
    }
    // We're okay now - no need to validate, so go straight to fields
    this.min = min;
    this.max = max;
}

在未来的某个时刻,我想看看C#获得的财产中声明的支持字段,使得它是私有的能力只是属性:

public string Name
{
    string name;

    get { return name; }
    set
    {
        if (value == null)
        {
            throw new ArgumentNullException("value");
        }    
        name = value;
    }
}

外面的财产,你将无法得到的name所有,只Name.我们已经将此用于自动实现的属性,但它们不能包含任何逻辑.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有