在C#中,我可以拥有一个属性而无需声明私有变量。
我的VB6代码看起来像这样:
现在可以像这样看起来。
'local variable(s) to hold property value(s)
Private mvarPhoneNumber As String 'local copy
Public Property Let PhoneNumber(ByVal vData As String)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.PhoneNumber = 5
mvarPhoneNumber = vData
End Property
Public Property Get PhoneNumber() As String
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.PhoneNumber
PhoneNumber = mvarPhoneNumber
End Property
现在可以像这样看起来。
public string PhoneNumber{get;set;}
我该如何在C#的getter和setter方法中添加验证?我尝试添加以下验证:
public string PhoneNumber
{
get
{
return PhoneNumber;
}
set
{
if (value.Length <= 30)
{
PhoneNumber = value;
}
else
{
PhoneNumber = "EXCEEDS LENGTH";
}
}
}
这段代码的get部分无法编译。 我需要回归使用私有变量吗?
public string PhoneNumber{get;set;}
相当的是一个简单的公共字段,Public PhoneNumber As String
。在VB6中,您可以随意将公共字段替换为属性,而不会影响任何功能:调用者无需重新编译,数据绑定仍然有效...这是VB6比.Net更好的领域之一。 - MarkJ