C#デフォルトのスコープ解決
-
05-07-2019 - |
質問
BCLクラス「Windows.Forms.Button」と競合するc#クラス「Button」(変更できません)を継承しました。通常、私は喜んで行きます:
MyPackage.MyClass.Button;
ただし、このクラスには多数の参照または参照があり、再入力するのが面倒です。
コンパイラ(リンカー?)がデフォルトでBCLバージョンよりもカスタマイズされたバージョンのButtonを使用するようにする方法はありますか?
解決
これをファイルの先頭に追加します:
using MyButton = MyPackage.MyClass.Button;
これで、個別の名前を使用してカスタムボタンを参照できます。同じファイル内の任意の場所で使用する場合は、ストックボタンに対して同様の操作が必要になる場合があります。
他のヒント
デフォルトで使用する場合は、置換します
using Windows.Forms;
with
using MyPackage.MyClass;
その場合、Windows.Formsのすべてのボタンを完全に修飾する必要があります。
または、必要に応じて、名前空間をエイリアスできます
using My = MyPackage.MyClass;
//... then
My.Button b = ...
またはボタンのエイリアス
using MyButton = MyPackage.MyClass.Button;
コードの上部から Windows.Forms;
を使用して削除できます。もちろん、これはすべてのWindows.Formsアイテムを具体的に参照する必要があることを意味します。
次のことができるようです:
using Button = MyPackage.MyClass.Button;
動作し、コード内のすべての参照をボタンに保存します。 Imはこのルートを下らないように誘いましたが、どのボタンが使用されているのか(少なくとも読者には)まだあいまいです。
「使用」を使用して、少なくとも少し痛み/言葉遣いを少なくすることができます:
using MPMC = MyPackage.MyClass;
次のように言うことができます:
MPMC.Button
所属していません StackOverflow