Domanda

Ho ereditato un 'Button' classe c # (che non posso cambiare) che si scontra con la classe BCL 'Windows.Forms.Button'. Normalmente, sarò molto felice di andare:

MyPackage.MyClass.Button;

Ma ci sono un gran numero o riferimenti a questa classe che è una sofferenza dover riscrivere.

Esiste un modo per riportare il compilatore (linker?) in modo predefinito all'uso della versione personalizzata di Button rispetto alla versione BCL?

È stato utile?

Soluzione

Aggiungi questo nella parte superiore del file:

using MyButton = MyPackage.MyClass.Button;

Ora puoi fare riferimento al tuo pulsante personalizzato usando un nome distinto. Potrebbe essere necessario fare qualcosa di simile per il pulsante stock se lo usi ovunque nello stesso file.

Altri suggerimenti

se si desidera utilizzarlo per impostazione predefinita, sostituire

using Windows.Forms;

con

using MyPackage.MyClass;

Se lo fai, dovrai qualificare completamente tutti i pulsanti di Windows.Forms.

Oppure, se vuoi, puoi alias lo spazio dei nomi

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

O alias il pulsante

using MyButton = MyPackage.MyClass.Button;

Puoi rimuovere usando Windows.Forms; dalla parte superiore del codice. Ciò significherebbe ovviamente che dovresti fare riferimento a tutti gli elementi Windows.Forms in modo specifico.

Sembra che posso fare quanto segue:

using Button = MyPackage.MyClass.Button;

funziona e conserva tutti i riferimenti all'interno del codice a Button. Anche se sono tentato di non seguire questa strada poiché è ancora ambiguo (almeno per il lettore) quale pulsante viene utilizzato.

Puoi almeno renderlo un po 'meno doloroso / prolisso con " usando " ;:

using MPMC = MyPackage.MyClass;

allora puoi dire:

MPMC.Button
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top