2008-10-06 12 views
6

Odziedziczyłem "przycisk" klasy C# (którego nie mogę zmienić), który koliduje z klasą BCL "Windows.Forms.Button". Zwykle jestem bardzo szczęśliwy z tego powodu:C# Domyślna rozdzielczość zakresu

Ale istnieje duża liczba lub odniesienia do tej klasy, co jest bólem, który trzeba ponownie wpisać.

Czy jest jakiś sposób, aby uzyskać kompilator (linker?) Domyślne do używania niestandardowej wersji przycisku nad wersją BCL?

Odpowiedz

21

Dodaj to do górnej części pliku:

using MyButton = MyPackage.MyClass.Button; 

Teraz można odwołać swój przycisk niestandardowy za pomocą odrębną nazwę. Być może będziesz musiał zrobić coś podobnego w przypadku przycisku stock, jeśli używasz go w dowolnym miejscu w tym samym pliku.

+0

To było dobrze widzieć. Nie sądzę, że działało we wcześniejszych wersjach .NET i nie wiedziałem, że zostało dodane. –

+0

Działa od co najmniej 2,0 w ​​górę. –

+0

Właściwie wierzę, że ten rodzaj aliasingu był dostępny w C# 1.0. Są to aliasy nazw (np. Alias ​​:: nazwa-pliku) wprowadzone w języku C# 2.0. –

2

Możesz usunąć using Windows.Forms; z góry kodu. To oczywiście oznacza, że ​​będziesz musiał odnosić się do wszystkich elementów Windows.Forms specjalnie.

+0

Przyjemny pomysł, chociaż biorąc pod uwagę pozostałe funkcje klas pozostawia mnie w tej samej pozycji co poprzednio! –

0

Można przynajmniej sprawiają, że mały nieco mniej bolesne/rozwlekły z „za”:

using MPMC = MyPackage.MyClass; 

wtedy można powiedzieć:

MPMC.Button 
4

jeśli chcesz używać go domyślnie zastąpić

using Windows.Forms; 

z

using MyPackage.MyClass; 

Jeśli to zrobisz, będziesz musiał w pełni zakwalifikować wszystkie przyciski z Windows.Forms. jeśli chcesz, możesz aliasu przestrzeni nazw

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

lub pseudonim przycisk

using MyButton = MyPackage.MyClass.Button; 
0

Wydaje się, że można zrobić następujące

Lub:

using Button = MyPackage.MyClass.Button; 

działa i zachowuje wszystkie odwołania w kodzie do przycisku. Chociaż jestem kuszony, aby nie podążać tą drogą, ponieważ nadal jest niejednoznaczny (przynajmniej dla czytelnika), który przycisk jest używany.

+0

Przeczytaj to jeszcze raz: możesz ustawić własną nazwę klasy przycisku, która różni się od przycisku. –

+0

Jestem tego świadomy. Jednak ze względu na już okropny charakter podstawy kodu myślałem, że lepiej będzie trzymać się nazw, które już tam są, np."Przycisk" zamiast innej nazwy np. "CustomButton". Chociaż możesz mieć rację, sugerujesz unikalną nazwę. –

Powiązane problemy