2009-10-26 5 views

답변

3

양식의 유효성이 설정된 속성에 따라 다르면 생성자에서 속성을 설정하십시오. 객체가 생성 된 후에는 항상 객체를 유효한 상태로 유지해야합니다.

0

생성자에서. 매우 자주 양식을 작성하고 양식을 표시하기 전에 일부 속성을 설정하거나 다른 종류의 설정을해야합니다. 이 경우 Form이 실제로로드되기 전에 모든 인스턴스 변수를 설정해야합니다.

0

폼로드시 변수를 초기화하는 데 특별한 필요 또는 종속성이없는 경우 (예 : 다른 것에 종속 된 것으로 초기화하는 경우 등) 생성자는 초기화를 담당해야합니다.

2

그래,하지만 양식을 열 때 비주얼 디자이너가이를 실행하므로 양식 생성자에서 무엇을하는지 조심하십시오.

런타임에 다른 구성 요소에 의존하는 것을 여기에 넣으면 오류가 발생할 가능성이 있으며 양식 레이아웃을 편집 할 수 없게됩니다.

나는 이런 이유로 Form Load에 넣는다.

+0

주의해야 할 말이 맞습니다. 그러나 설정할 속성이 클래스 invariant 인 경우 해당 속성이 설정 될 때까지 다른 클라이언트가 해당 개체를 만져서는 안된다는 것을 의미합니다.이 경우 생성자가 유일한 합리적인 곳입니다. 결과 : 런타임 초기화에 의존하는 속성은 디자이너가 관리하는 클래스에 대한 클래스 불변 값이 아니어야합니다. –

0

생성자에서 속성을 초기화해야합니다. 생성자는 분명히 폼 인스턴스 당 한 번만 호출됩니다. 로드 이벤트 핸들러는 폼이 표시 될 때마다 호출됩니다. 또한로드 이벤트 핸들러에서 콤보 상자 채우기와 같은 초기화 작업을 수행 한 경우 양식을 표시하기 전에 콤보 상자의 값을 미리 선택하기 위해 꽤 해킹 된 코드를 작성해야합니다. 그것은 단지 하나의 예입니다. 희망이 도움이됩니다.

관련 문제