这两个片段有什么区别?
Public Property UserName As String
和
Public Property User As String
Get
Return _User
End Get
Set(ByVal value As String)
_User = value
End Set
End Property
如果这是一个重复或愚蠢的问题,我很抱歉。我不习惯VB.NET,我更习惯于C#。我试图将其翻译成C#,我没有犯错的余地。
答案 0 :(得分:4)
第一个(自动实现的属性)将自动为您创建支持字段,因此您不必像第二个示例那样自己声明_User
。
来自MSDN:
声明自动实现的属性时,Visual Basic 自动创建一个称为支持字段的隐藏私有字段 包含属性值。支持字段名称是 自动实现的属性名称,以下划线(_)开头。对于 例如,如果您声明一个名为ID的自动实现的属性,则 支持字段名为_ID。
答案 1 :(得分:3)
没有区别。第一个是第二个的简短版本。
但是如果要限制setter或在属性中执行更多操作而不是获取/设置变量,则需要使用第二个版本。
所以它与(在C#中)
相同public string UserName { get; set; }
答案 2 :(得分:1)
其中一个更短:)
在第一种情况下,它是一个自动实现的属性,与第二种情况完全相同,除了您无法查看或使用支持字段。
<顺便说一下,C#等价物是:public string UserName { get; set; }
答案 3 :(得分:1)
这只是VB version of automatically implemented properties。
所以C#的等价物是:
public string UserName { get; set; }
请注意,VB允许自动实现属性的默认值,而C#则不允许 - 您需要在构造函数中将属性设置为默认值。