6

我继承了与 BCL 类“Windows.Forms.Button”冲突的 ac# 类“Button”(我无法更改)。通常,我很乐意去:

MyPackage.MyClass.Button;

但是有大量或对此类的引用,这很痛苦,必须重新输入。

有没有办法让编译器(链接器?)默认使用自定义版本的 Button 而不是 BCL 版本?

4

5 回答 5

21

将此添加到文件顶部:

using MyButton = MyPackage.MyClass.Button;

现在您可以使用不同的名称引用您的自定义按钮。如果您在同一文件中的任何位置使用股票按钮,您可能需要对股票按钮执行类似的操作。

于 2008-10-06T13:22:18.300 回答
4

如果您想默认使用它,请替换

using Windows.Forms;

using MyPackage.MyClass;

如果这样做,则需要完全限定 Windows.Forms 中的所有按钮。

或者,如果您愿意,您可以为命名空间设置别名

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

或者给按钮起别名

using MyButton = MyPackage.MyClass.Button;
于 2008-10-06T13:25:31.210 回答
2

您可以using Windows.Forms;从代码顶部删除。这当然意味着您必须专门引用所有 Windows.Forms 项。

于 2008-10-06T13:20:22.830 回答
0

您至少可以通过“使用”使其不那么痛苦/罗嗦:

using MPMC = MyPackage.MyClass;

那么你可以说:

MPMC.Button
于 2008-10-06T13:24:22.913 回答
0

看来我可以做到以下几点:

using Button = MyPackage.MyClass.Button;

有效,它保留了代码中对 Button 的所有引用。尽管我很想不走这条路,因为它仍然模棱两可(至少对读者来说)正在使用哪个 Button。

于 2008-10-06T13:30:07.130 回答