你能为vb.net使用C#属性语法吗?

时间:2015-01-29 20:14:51

标签: c# .net vb.net c#-to-vb.net

public string Name { get; set; }

这用于C#,但我想知道如果在vb.net中你可以做同样的快速声明。例如possibliy

public property Name() As String{get; set;}

2 个答案:

答案 0 :(得分:3)

试试这个:

Public Property Name As String 

ref https://msdn.microsoft.com/en-us/library/dd293589.aspx

答案 1 :(得分:0)

您可以在vb.net

中执行此操作
Public Property Name As String
' in addition, _Name is declared automatically by vb.net

但它与c#

并不完全相同
public string Name { get; set; }
// _Name is not declared automatically!

因为vb.net自动实现的属性会自动创建一个名为_Name的支持字段,而c#则不会。

vb.net中的展开属性是

Private _Name As String

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

和c#示例是

private string _Name;

public string Name
{
    get { return _Name; }
    set { _Name = value; }
}

当展开属性并显式声明支持字段时,属性是等效的。

但是,我会避免访问vb.net中自动实现的支持字段,因为它可能会导致混淆,因为它的声明是不可见的。