BCLクラス'Windows.Forms.Button'と衝突するac#クラス'Button'(変更できません)を継承しました。通常、Idは非常に喜んで行きます:
MyPackage.MyClass.Button;
しかし、このクラスへの参照が多数あるか、再入力するのが面倒です。
コンパイラ(リンカー?)をデフォルトでBCLバージョンよりもカスタマイズされたバージョンのButtonを使用するようにする方法はありますか?
BCLクラス'Windows.Forms.Button'と衝突するac#クラス'Button'(変更できません)を継承しました。通常、Idは非常に喜んで行きます:
MyPackage.MyClass.Button;
しかし、このクラスへの参照が多数あるか、再入力するのが面倒です。
コンパイラ(リンカー?)をデフォルトでBCLバージョンよりもカスタマイズされたバージョンのButtonを使用するようにする方法はありますか?
これをファイルの先頭に追加します。
using MyButton = MyPackage.MyClass.Button;
これで、別の名前を使用してカスタムボタンを参照できます。同じファイル内のどこかでストックボタンを使用する場合は、ストックボタンに対して同様のことを行う必要がある場合があります。
デフォルトで使用する場合は、
using Windows.Forms;
と
using MyPackage.MyClass;
その場合は、Windows.Formsのすべてのボタンを完全に修飾する必要があります。
または、必要に応じて、名前空間のエイリアスを作成できます
using My = MyPackage.MyClass;
//... then
My.Button b = ...
またはボタンのエイリアス
using MyButton = MyPackage.MyClass.Button;
using Windows.Forms;
コードの先頭から削除できます。もちろん、これは、すべてのWindows.Formsアイテムを具体的に参照する必要があることを意味します。
「使用する」ことで、少なくとも少し痛みを和らげることができます。
using MPMC = MyPackage.MyClass;
その後、あなたは言うことができます:
MPMC.Button
私は次のことができるようです:
using Button = MyPackage.MyClass.Button;
動作し、ボタンへのコード内のすべての参照を保持します。どのボタンが使用されているかは(少なくとも読者にとっては)まだあいまいなので、Imはこのルートをたどらないように誘惑しました。