关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
8年前关闭。
Improve this question
这是我不太一致的事情,并且总是对其他人的所作所为感到好奇。
您如何访问内部属性(私有(private)或公共(public))?
例如你有这个属性:
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 的事实。
最佳答案
就个人而言,我更喜欢尽可能使用该属性(property)。这意味着您仍然可以获得验证,并且您可以轻松地在属性访问上设置断点。这在您尝试更改两个相互验证的属性时不起作用 - 例如,“最小和最大”对,其中每个属性都有一个验证约束,使得 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;
}
在 future 的某个时候,我希望看到 C# 能够在属性中声明支持字段,使其仅对属性私有(private):
public string Name
{
string name;
get { return name; }
set
{
if (value == null)
{
throw new ArgumentNullException("value");
}
name = value;
}
}
在酒店外,您将无法访问
name
根本就只有Name
.我们已经为自动实现的属性提供了这个,但它们不能包含任何逻辑。
关于.net - 通过访问器或直接访问同一类的属性的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355787/