Vb.net 如何在中使用新对象的实例。。。块
有可能吗Vb.net 如何在中使用新对象的实例。。。块,vb.net,Vb.net,有可能吗 我问了一个新问题,因为最后一个问题有误导性的信息,我并没有给出正确的答案。所以这里是代码。不,这是不可能的。With语句基本上创建了一个隐式变量。使用该变量所能做的就是访问成员,并且没有任何成员返回对对象本身的引用 如果希望简洁的代码创建、填充对象并将其添加到列表中,请执行以下操作: Dim objects As New List(Of Object) With New Object .prop1 = "Property 1" .prop2 = "Property 2"
我问了一个新问题,因为最后一个问题有误导性的信息,我并没有给出正确的答案。所以这里是代码。不,这是不可能的。
With
语句基本上创建了一个隐式变量。使用该变量所能做的就是访问成员,并且没有任何成员返回对对象本身的引用
如果希望简洁的代码创建、填充对象并将其添加到列表中,请执行以下操作:
Dim objects As New List(Of Object)
With New Object
.prop1 = "Property 1"
.prop2 = "Property 2"
objects.add(.instance) 'i mean instance of New Object
End With
有趣的是,如果您创建自己的扩展方法,就可以按照您想要的方式工作。我的印象是您无法扩展对象
类,但要么是我错了,要么是因为我刚刚在VB 2013中进行了尝试,结果成功了。您可以编写如下方法:
myList.Add(New SomeType With {.SomeProperty = someValue,
.SomeOtherProperty = someOtherValue})
Imports System.Runtime.CompilerServices
Public Module ObjectExtensions
<Extension>
Public Function Self(Of T)(source As T) As T
Return source
End Function
End Module
考虑到我首先演示的对象初始化器语法的可用性,我不确定这是否真的提供了任何好处
嗯。。。我刚刚意识到这实际上并没有扩展
对象
类。我的初衷是尝试这样做,但后来我意识到,泛型方法更好,因为它将返回与调用它相同的类型。我只是用扩展类型对象的非泛型方法对其进行了测试,但仍然有效。您应该通过示例创建自己的类:
With New SomeType
.SomeProperty = someValue
.SomeOtherProperty = someOtherValue
myList.Add(.Self())
End With
在要添加cars对象的类中,执行以下操作:
Public Class Car
Private _NumberCar As Integer
Public Property NumberCar() As Integer
Get
Return _NumberCar
End Get
Set(ByVal value As Integer)
_NumberCar = value
End Set
End Property
Private _ColorCar As Color
Public Property ColorCar() As Color
Get
Return _ColorCar
End Get
Set(ByVal value As Color)
_ColorCar = value
End Set
End Property
Private _OwnerName As String
Public Property OwnerName() As String
Get
Return _OwnerName
End Get
Set(ByVal value As String)
_OwnerName = value
End Set
End Property
End Class
strong文本问题是什么?几天前你已经问了这个问题:
Dim CarList As New List(Of Car)
Dim item As New Car
With item
.NumberCar = 1243
.ColorCar = Color.Red
.OwnerName = "Ibra"
End With
CarList.Add(item)