, 그들은 모두 같은 일을 수행. 조직을위한 컨트롤을 개발하고 있다면 init에 넣는 것이 좋습니다. (기술적으로 "있어야하는 곳"에도 불구하고 작동하지만 MS는 그들이 기대하는 방법을 만들었습니다 .
누군가가 사용할 컨트롤을 만드는 Telerik과 같은 사람이라면 나는 CreateChildControls
클래스에 넣을 것입니다. 왜 그런가? 사람들이 기대하는 것이기 때문에 MS가 제어하기를 원하는 것입니다. 개발자가해야 할 일 (특히 개발 한 컨트롤이 봉인되지 않은 경우)은 누군가가 다른 메소드를 재정의 할 수 있다는 것입니다. 많은 사람들이 보았 듯이 init
클래스를 덮어 씁니다. 코드가 원하는대로 작동하도록하십시오. 코드가 신비하게 작동하지 않는 상황을 항상 피하고자합니다. 기본 메소드를 호출하는 것을 잊었으며 문서화되지 않았습니다. CreateChildControls
메서드에 넣으면 다른 개발자에게 무엇을 말하고있는 것입니까? "여기에 컨트롤을 작성하면 뭔가를하고 싶을 것입니다." 클래스를 재정의하면 항상 메소드의 기본 클래스를 생각할 것입니다.
CreateChildControls
에 넣는 것에 대한 또 다른 좋은 점은 많은 사람들이 아마 그것에 대해 알지 못한다는 것입니다 (그리고 사람들은 무엇을 위해 사용되는지 알고 있습니다). 따라서 Init
으로 컨트롤과 원숭이를 상속하고 Init
메서드를 호출하는 것을 잊어 버리면 코드가 여전히 "마술처럼"작동하고 잘못된 내용을 파악할 필요가 없습니다.
또한 인증 된 컨트롤이 있으면 EnsureChildControls에서 컨트롤 어댑터를 호출합니다. 희망이 될 수도 있고 그렇지 않을 수도 있습니다. –
좋은 지적 Richard. 추가 해줘서 고마워. – kemiller2002