我想继承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吗?
答案 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是否是命名空间。