2012-01-02 4 views
-1

동안 클래스를 캡슐화 모방.C#을 내가 상황 다음 한 캐스트

이 상황에 대한 해결책이 있습니까? EnhancedTextBoxCellControl은 캡슐화 한 TextBox를 에뮬레이션 할 수 있습니까? 어떻게 든 가능하지 않습니다 에 대한 캐스트에 반응하고 this (일종의 오리 타이핑 캐스트) 대신 encapsulatedTextBox을 반환합니까?

+0

"B가 'C'로 전달 될 때 -이 일이 어디에서 발생합니까? –

+0

이 경우'B'는'DataGridView' 구성 요소에 저장되며'C' 조각이 발생합니다. – sherpa

+0

자, 질문을 편집하여 이야기하는 것을 나타내는 몇 가지 코드를 포함시킬 수 있습니까? 그 순간에 정말로 확실하지 않습니다. –

답변

2

아니요, B가 Panel에서 상속해야하므로 C의 구현이 비공개이므로 불가능합니다.

유일한 선택은 C에서 상속 받고 상속 된 클래스의 생성자에서 고유 한 논리를 수행하는 것입니다.

+0

예, 정확히 C/DataGridViewCell 클래스를 디 컴파일 한 후에했습니다. 그러나 이것이 더 나은 타이핑의 한계가 분명하기 때문에 더 나은 것을 기대하고있었습니다. – sherpa

+0

저는 실제로 이것은 강한 타이핑보다는 컨트롤 디자인의 한계라고 생각합니다. 컨트롤 디자이너는이 상황이 발생할 필요가있는 시나리오를 상상할 가능성이 매우 높았습니다. 그렇지 않으면 텍스트 상자를 재정의 할 수있는 멤버로 노출 시키거나 텍스트 상자 컨트롤의 지정을 허용하는 인터페이스를 추가 할 것으로 의심됩니다. –