2014-12-13 57 views
0

首先,请允许我向您提供我的代码:VB.NET获取和设置问题

Public Property Number() As Integer 
    Get 
     Return m_Number 
    End Get 
    Set(value As Integer) 
     m_Number = value 
    End Set 
End Property 

Private m_Number As Integer 
Dim MyList As New List(Of Class1)(New Class1() {Number = 5}) 

我试图转换该C夏普代码:

public int Number { get; set; } 
public List<class1> MyList = new List<class1>() 
{ 
    new class1(){ Number = 5 } 
}; 

,每次它给我错误:

Error 1 Value of type 'Boolean' cannot be converted to 'VB_Project.Class1'.

+0

[在线转换器(http://converter.telerik.com/)给正确的转换 – Plutonix 2014-12-13 15:48:05

回答

0

试试这个:

Dim MyList As New List(Of Class1)(New Class1() With {.Number = 5}) 

(注意.Number

+0

现在它给了我这个错误: > 错误领先'。'要么 '!'只能出现在“With”语句中。 – 2014-12-13 15:35:09

+0

@HenMadhala,是的,我忘了'With' ...现在已经修好了 – 2014-12-13 16:01:51

2

编译器试图难,因为它可以试着去了解你正在尝试做的。绝望地尝试将表达式转换为Integer或IEnumerable,以便它可以调用适当的List构造函数。但糟糕的是,它首先让平等运营商感到窒息。

您不能像这样将元素添加到List。考虑素雅的方式与构造:

Dim MyList As New List(Of Class1)() 

Public Sub New() 
    MyList.Add(New Class1() With {.Number = 5}) 
End Sub 

或者使用正确的初始化语法与From关键字:

Dim MyList As New List(Of Class1) From {New Class1() With {.Number = 5}}