类继承命名

时间:2009-09-08 15:55:54

标签: c# inheritance devexpress

我想继承DevExpress ComboBoxEdit控件,我想知道将我的类命名为与DevExpress类相同是不好的做法。

这是派生类声明:

using System;
using System.Collections.Generic;
using System.Text;

namespace MyApplication.Components
{
    public class ComboBoxEdit : DevExpress.XtraEditors.ComboBoxEdit
    {
    }
}

我应该将MyApplication.Components.ComboBoxEdit重命名为MyComboBoxEdit吗?

8 个答案:

答案 0 :(得分:11)

必须有一个原因,你要创建自己的ComboBoxEdit。我会以班级的名义使用这个理由。

答案 1 :(得分:3)

这只是一个好主意,只有你想让维护家伙以一千个太阳的强度来讨厌你。

答案 2 :(得分:1)

使用常识。

1)如果在整个应用程序名称中使用了你的和DevExpress组合框,它就会有所不同(但仍然会显示其身份)。

2)如果您有一个定义良好的约定,您将继承某个命名空间中的所有组件并仅使用您自己的组件,那么我认为这样做没有问题。

答案 3 :(得分:0)

嗯,这样做是合法的,但我会反对它,因为它只会引起混淆......为什么不把它命名为“MyComboBoxEdit”或“SuperComboBoxEdit”或任何你喜欢的东西?

答案 4 :(得分:0)

从技术上讲,你的班级已经有了不同的名字。您的类名为“MyApplication.Components.ComboBoxEdit”,DevExpress类名为“DevExpress.XtraEditors.ComboBoxEdit”。

也就是说,你的课程可能与DevExpress课程有不同的行为。因此,您可能应该为新类提供更具描述性的名称。

答案 5 :(得分:0)

如果您(以及您的同事/其他人将使用该应用程序)不会造成混淆,那么使用相同的名称是完全合法的 - 毕竟这就是存在命名空间的原因。 否则,您可能希望在扩展基类的原因之后命名您的类,例如: ComboBoxEditThatAlsoDoesThisAndThat,而不是使用通用的我的前缀......

答案 6 :(得分:0)

我也会建议不要进行命名冲突。关于名称,如果您有理由创建继承控件,那么您应该能够提供有用的名称。

我的前缀是严格限制的,对于阅读代码的新手来说没什么价值。当你需要一个新的时候,你也冒险进入MyComboBox2。

答案 7 :(得分:0)

没有任何违法行为,但如果你在另一个档案中使用这样的使用声明,你就会遇到问题。

using DevExpress.XtraEditors;

然后你最终将类名埋在intellisense中(因为两个类具有相同的名称);所以你必须明确指定你正在使用哪个类。

我假设......我从未使用过Dev Express。我不知道XtraEditors是否是命名空间。