2012-03-23 5 views
0

배열 형식의 개체 속성을 설정하려고합니다. 내가 선언하고 객체의 배열을 초기화하는 경우배열 속성을 한 줄에 새 초기화 된 배열로 설정하는 방법

, 나는이 작업을 수행 할 것 :

Dim x() as SomeObject = {obj1, obj2} 

나는 속성이 비슷한을 할 수있을 것 같다하지 않습니다, 당신은이 작업을 수행 할 수 않습니다 누구든지 올바른 구문을 알고 있습니까?

myObj.ArrayProperty = {obj1, obj2} 

나는 {처음에 표현 예상 오류를 얻을

Infer Off 
Explicit On 
Strict On 

답변 :

myObj.ArrayProperty = New objType() {obj1, obj2} 
+0

엄밀하고 명시적인 옵션은 무엇을 추측합니까? http://msdn.microsoft.com/en-us/library/bb384665.aspx –

+0

@TimSchmelter 업데이트 된 질문 –

답변

1

새로운 키워드 예 필요 : A의 비주얼 스튜디오 2010에서

이 작품을 타겟 프레임 워크 2.0

+1

VB.NET이 아니며 VB 질문입니다. http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/collection-and-array-initializers-in –

+0

이것은 작동하지 않았습니다. myObj.ArrayProperty = new objType() {obj1, obj2} 시도했습니다. –

+1

내 잘못 업데이트 됨 – Fredou

1

아마 당신은 당신이 작성하고 개체를 추가 할 수 있습니다 전에 배열을 만들어야이

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() { ...을 지정해야합니다. 단순한 구문은 이니셜 라이저에만 적용됩니다.

+0

죄송합니다, 내가 뭘 찾고있는 건지, 당신이 예제에서 볼 수 있듯이, 나는 위의 방법을 알고 있습니다.같은 시간에 배열과 init에 속성을 설정하려고합니다. 이미 다른 곳에 인스턴스화 된 배열에 대한 객체가 있습니다. 유형은 질문의 목적에 중요하지 않습니다. –

관련 문제