Vb.net 在不使用With或From的情况下声明New
我想知道是否可以写多行,相当于下面这一行,但不是使用With和From,而是使用多行来声明数据Vb.net 在不使用With或From的情况下声明New,vb.net,Vb.net,我想知道是否可以写多行,相当于下面这一行,但不是使用With和From,而是使用多行来声明数据 Dim Price = New PriceStruc() With { _ .Bids = New List(Of Prices)() From {New Prices() With {.Price = 1101, .Size = 1}}, .Offers = New List(Of Prices)() From {New Prices() With {.Price = 1102, .Size
Dim Price = New PriceStruc() With { _
.Bids = New List(Of Prices)() From {New Prices() With {.Price = 1101, .Size = 1}},
.Offers = New List(Of Prices)() From {New Prices() With {.Price = 1102, .Size = 1}}}
创建实例时,可以向构造函数添加参数以设置属性。这对于仅当此属性或该属性已知时才应该存在的对象尤其有用。在设计器序列化中的另一个用途,以及其他用途 警告:按要求执行不会使代码更容易阅读 我不知道这些是什么,所以我自己编了一个,并修改了一些术语(看起来
Prices
有一个项目的数据,但它是复数)
存在简单构造函数(无参数),因为许多序列化程序都需要一个。根据序列化程序的不同,可以将其设置为Friend
,以强制代码使用重载,并在创建新的Price对象时指定Value
和Size
。如果没有特定的关键点信息,对象无权创建,则此选项非常有用。(对于每个循环,您仍然可以在中使用它,因为您不需要新对象)
在这种情况下,值
(命名以避免价格.价格
)和大小
可能是必需的元素,但构造函数重载主要是为了方便。要使用它:
Dim p As New Price(1101, 1)
现在,这些对象可以不使用
而使用实例化。支架看起来像这样:
Friend Class PriceItem
Public Property Bids As List(Of Price)
Public Property Offers As List(Of Price)
Public Sub New()
End Sub
Public Sub New(b As List(Of Price), o As List(Of Price))
Bids = b
Offers = o
End Sub
End Class
可能还有更多,比如一个名称
指示投标和报价的目的,但想法是一样的:在构造函数中传递列表
现在,您可以使用其构造函数初始化Price
对象和PriceItem
:
Dim Prices = New PriceItem(New List(Of Price)(New Price() {New Price(1101, 1),
New Price(1102, 1)}),
New List(Of Price)(New Price() {New Price(1106, 7),
New Price(1104, 1)}))
无和
没有来自的
1101、1102为投标项目,1106、1104为报价项目
正如我所说,它并没有使阅读、调试或编写代码变得更容易。对于Price
项目来说,这可能是有意义的,但是将列表传递给PriceItem
ctor似乎有点过分。这似乎在可读性和简洁性之间取得了最佳平衡,而不是试图将所有内容都压缩到初始化中:
Dim PItem As New PriceItem
PItem.Bids = New List(Of Price)(New Price() {New Price(1101, 1), New Price(1102, 1)})
PItem.Offers = New List(Of Price)(New Price() {New Price(1106, 7), New Price(1104, 1)})
无和
否来自
是。将价格和尺寸参数添加到构造器中您介意给我看一个样品吗?
Dim PItem As New PriceItem
PItem.Bids = New List(Of Price)(New Price() {New Price(1101, 1), New Price(1102, 1)})
PItem.Offers = New List(Of Price)(New Price() {New Price(1106, 7), New Price(1104, 1)})