아마 당신은 당신이 작성하고 개체를 추가 할 수 있습니다 전에 배열을 만들어야이
Dim x As SomeClass() = New SomeClass() { _
New SomeClass With {.ID = 1, .Name = "John"}, _
New SomeClass With {.ID = 2, .Name = "Sue"} _
}
찾고 있습니다.
개체가 배열 형식이라고 말하는 것은 잘못된 것입니다. 나는 당신이 어떤 타입의 배열을 가지고 있다고 말하고 싶다. 배열을 초기화 할 때 해당 유형의 객체를 추가하고 동시에이 객체의 속성을 초기화합니다. 속성은 배열 자체의 객체가 아니라 배열의 객체에 속합니다.
가변 뒤에 변수 괄호를 배치하는 VB 방법은 혼란 스럽습니다. VB는 어떤 경우에 배열 괄호를 타입 뒤에 놓을 수있게 해주는데, 이것은 나에게 더 논리적으로 보인다.
UPDATE : (변수와는 달리)
속성 초기화가 없습니다; 그러나 백업 변수를 초기화 할 수 있습니다.
Private _myArrayProperty As SomeClass() = New SomeClass() { _
New SomeClass With {.ID = 1, .Name = "John"}, _
New SomeClass With {.ID = 2, .Name = "Sue"} _
}
Public Property MyArrayProperty() As SomeClass()
Get
Return _myArrayProperty
End Get
Set(ByVal value As SomeClass())
_myArrayProperty = value
End Set
End Property
나중에 속성에 새로운 배열을 할당 할 경우, 당신은 변수 이니셜 라이저에서 New SomeClass()
을 삭제할 수 있습니다이
obj.MyArrayProperty = New SomeClass() { _
New SomeClass With {.ID = 1, .Name = "John"}, _
New SomeClass With {.ID = 2, .Name = "Sue"} _
}
처럼 그것을 할 수 있습니다; 그러나 다른 표현식에서는 명시 적으로 New SomeClass() { ...
을 지정해야합니다. 단순한 구문은 이니셜 라이저에만 적용됩니다.
엄밀하고 명시적인 옵션은 무엇을 추측합니까? http://msdn.microsoft.com/en-us/library/bb384665.aspx –
@TimSchmelter 업데이트 된 질문 –