WPF UI Automation system
의 GetPattern() 방법 구현이 열거 매개 변수 PatternInterface
을 복용 구현되고 우리가 일반적으로 다음과 같은 방법으로 사용 : 위의 코드에서System.Windows.Automation.Peers.AutomationPeer.GetPattern() 메서드가 Generics를 사용하지 않는 이유는 무엇입니까?
//Code with original implementation
ButtonAutomationPeer buttonPeer = new ButtonAutomationPeer(button1);
IInvokeProvider provider = (IInvokeProvider)buttonPeer.GetPattern(PatternInterface.Invoke); //Line in Question
//To invoke the click event of button we then use the following code:
provider.Invoke();
, 선 질문에서 코멘트 와 선 것 같다 강력한 형식이 아닌 경우 GetPattern()
메서드에서 필요한 인터페이스로 반환하고 특정 UI 자동화를 호출하는 데 사용해야합니다.
질문은 다음과 같습니다 WPF
에서 GetPattern()
메소드의 구현은 다음과 같이 닷넷 프레임 워크에 이미 존재하는 Generics
사용하여 수행 된 경우 가 더 나은되지 않았을 :
public T GetPattern<T>;
- 경우, I 그런 다음
GetPattern<T>
메서드를 호출하고 메서드를 호출하는 동안 필요한 인터페이스 패턴 이름을 전달하고 해당 인터페이스 인스턴스 을 강력하게 입력하고 이 아닌은 캐스트이 필요합니다. 무슨 생각은 마이크로GetPattern()
enum
을 필요로 원래의 구현에 주어진가? - 메서드 매개 변수에 enums를 사용하면 원래 유지 관리의 유지 관리가 깨지지 않습니다. 나는 패턴 인터페이스의 열거 값은 내가 더 쉽고 더 나은 가정 이
PatternInterface
이름을 열거 매개 변수를 추가 할 필요가 있다는 새로운 제어 인터페이스 패턴으로 필요할 때 지원 말할 것 메소드를 호출하고 일반 구현을 호출 사용합니다 아래 새로운 코드를 사용하여 인터페이스 패턴을 얻을 :
//Code with New Generics based implementation
ButtonAutomationPeer buttonPeer = new ButtonAutomationPeer(button1);
IInvokeProvider provider = buttonPeer.GetPattern<IInvokeProvider>(); //Line in Question
//To invoke the click event of button we then use the following code:
provider.Invoke();
마이크로 소프트가 디자인 결정을 내린 이유는 말할 수 없습니다. 적절한 포럼에서 질문 할 것입니다. – Basic
@Basic @Basic은 질문 할 수 없으므로 말할 수 없습니다. 이 사이트에 많은 사람들이 질문에 대한 답변을 잘 알고 있고 구현의 장단점에 대한 제안을 많이 갖고 있기 때문에이 질문을 닫으십시오.이 질문은 Microsoft가 왜 이 방법으로 구현; 오히려이 방법을 제시하는 또 다른 방법이 프로그래밍 세계에 도움이되었는지 묻습니다. – VS1
@CSharpVJ 누군가가 정확하게 당신의 질문에 대답 할 수 있다면 그것은 좋을 것입니다. 그러나 당신이 대답을 얻지 못하거나 질문이 닫히는 경우에 대비해서 , 나는이 아이디어를 [MS Coneect] (http://connect.microsoft.com/VisualStudio)에 올리라고 제안 할 것입니다. 이것이이 질문에 대한 좋은 대답을 얻을 수있는 유일한 곳입니다. – akjoshi