2009-11-13 7 views
0
나는 그것이로드 게으른 아니면 인스턴스가 초기화로

공유 읽기 전용 lazyloaded 있습니까?

Shared ReadOnly Variable As DataType = New DataType()
또는 대안
Shared ReadOnly Variable As New DataType()

쓸 때

이 궁금 해서요?

의 의

방법은없는 읽기 전용 자체에 대한 공유?

예 : System.Type.Delimiter

답변

2

어느 쪽도로드 게으른입니다.

유형이 초기화 될 때 초기화됩니다. 정적 멤버가 액세스되거나 유형 인스턴스가 처음 생성 될 때 정적 초기화가 트리거됩니다.

예 (System.Type.Delimiter)는 Static Constructor으로 초기화됩니다.

+0

일반 클래스에서 공유 읽기 전용 멤버를 선언 할 때 초기화시기는 언제입니까? – Shimmy

+1

클래스의 모든 메소드 (생성자와 같은 특수 메소드를 포함하여 공유 또는 인스턴스)보다 _no _ 초기화됩니다. 런타임의 재량에 따라 언제든지 초기화 할 수 있습니다. 클래스에 정적 이니셜 라이저가있는 경우 보장은 강력합니다. 필드의 이니셜 라이저는 클래스의 모든 메서드 (ctors 포함)를 처음 호출 할 때 항상 실행됩니다. –