我继承了与 BCL 类“Windows.Forms.Button”冲突的 ac# 类“Button”(我无法更改)。通常,我很乐意去:
MyPackage.MyClass.Button;
但是有大量或对此类的引用,这很痛苦,必须重新输入。
有没有办法让编译器(链接器?)默认使用自定义版本的 Button 而不是 BCL 版本?
我继承了与 BCL 类“Windows.Forms.Button”冲突的 ac# 类“Button”(我无法更改)。通常,我很乐意去:
MyPackage.MyClass.Button;
但是有大量或对此类的引用,这很痛苦,必须重新输入。
有没有办法让编译器(链接器?)默认使用自定义版本的 Button 而不是 BCL 版本?
将此添加到文件顶部:
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;
有效,它保留了代码中对 Button 的所有引用。尽管我很想不走这条路,因为它仍然模棱两可(至少对读者来说)正在使用哪个 Button。