Pregunta

He heredado un 'Botón' de la clase c # (que no puedo cambiar) que choca con la clase BCL 'Windows.Forms.Button'. Normalmente, estaré muy feliz de ir:

MyPackage.MyClass.Button;

Pero hay un gran número o referencias a esta clase que es un dolor tener que volver a escribir.

¿Hay alguna forma de hacer que el compilador (enlazador?) no utilice la versión personalizada de Button sobre la versión BCL?

¿Fue útil?

Solución

Agregue esto a la parte superior del archivo:

using MyButton = MyPackage.MyClass.Button;

Ahora puede hacer referencia a su botón personalizado con un nombre distinto. Es posible que deba hacer algo similar para el botón de existencias si lo utiliza en cualquier lugar del mismo archivo.

Otros consejos

si quiere usarlo por defecto, reemplace

using Windows.Forms;

con

using MyPackage.MyClass;

Si lo haces, deberás calificar completamente todos los botones de Windows.Forms.

O, si lo desea, puede asignar un alias al espacio de nombres

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

O alias el botón

using MyButton = MyPackage.MyClass.Button;

Puede eliminar utilizando Windows.Forms; de la parte superior del código. Eso significaría, por supuesto, que tendría que hacer referencia a todos los elementos de Windows.Forms específicamente.

Parece que puedo hacer lo siguiente:

using Button = MyPackage.MyClass.Button;

funciona y conserva todas las referencias dentro del código a Button. Aunque estoy tentado de no seguir esta ruta, ya que sigue siendo ambiguo (al menos para el lector), qué botón se está utilizando.

Al menos puede hacer que sea un poco menos doloroso / wordy con " usando " ;:

using MPMC = MyPackage.MyClass;

entonces puedes decir:

MPMC.Button
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top