Pergunta

Eu herdei 'Button' uma classe C # (que eu não posso mudar), que se choca com a classe BCL 'Windows.Forms.Button'. Normalmente, Id ser muito feliz de ir:

MyPackage.MyClass.Button;

Mas há um grande número ou referências a esta classe que é uma dor de ter de re-tipo.

Existe alguma maneira de obter o compilador (linker?) Como padrão para usar a versão personalizada do botão sobre a versão BCL?

Foi útil?

Solução

Adicione isto a parte superior do arquivo:

using MyButton = MyPackage.MyClass.Button;

Agora você pode referenciar o botão personalizado usando um nome diferente. Pode ser necessário fazer algo semelhante para o botão de estoque se você usar isso em qualquer lugar do mesmo arquivo.

Outras dicas

Se você quiser usá-lo por padrão, substitua

using Windows.Forms;

com

using MyPackage.MyClass;

Se você fizer isso, você precisa qualificar totalmente todos os botões de Windows.Forms.

Ou, se você quiser, você pode alias namespace

using My = MyPackage.MyClass;
//... then
My.Button b = ...

ou o alias o botão

using MyButton = MyPackage.MyClass.Button;

Você pode remover using Windows.Forms; a partir do topo do código. Isso significa, naturalmente, que você teria que fazer referência a todos os itens Windows.Forms especificamente.

Parece que eu posso fazer o seguinte:

using Button = MyPackage.MyClass.Button;

obras e preserva todas as referências dentro do código de botão. Embora Im tentado a não enveredar por este caminho, pois é ainda ambiguious (pelo menos para o leitor) qual botão está sendo usado.

Você pode, pelo menos, torná-lo uma pequena pouco menos dolorosa / prolixo com "usando":

using MPMC = MyPackage.MyClass;

então você pode dizer:

MPMC.Button
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top