代码之家  ›  专栏  ›  技术社区  ›  Armbrat

类继承命名

  •  3
  • Armbrat  · 技术社区  · 16 年前

    我想继承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 回复  |  直到 16 年前
        1
  •  11
  •   Vadim    16 年前

    你创建自己的ComboBoxedit肯定有原因。我会以班级的名义使用这个理由。

        2
  •  3
  •   AngryHacker    16 年前

    这是个好主意,除非你想让维修人员用一千个太阳的强度来恨你。

        3
  •  1
  •   George Mauer    16 年前

    使用常识。

    1)如果您的和devexpress组合框在整个应用程序中都被使用,那么它的名称会有所不同(但仍然会显示其身份)。

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

        4
  •  0
  •   Thomas Levesque    16 年前

    嗯,这样做是合法的,但我建议不要这样做,因为这样只会引起混乱…为什么不把它命名为“mycomboboxedit”或“supercomboxedit”或任何你喜欢的名字?

        5
  •  0
  •   Robert Venables    16 年前

    从技术上讲,你的班级已经有了不同的名字。您的类名为“myapplication.components.comboxedit”,devexpress类名为“devexpress.xtraeditors.comboxedit”。

    也就是说,您的类可能与devexpress类有不同的行为。因此,您应该给新类一个更具描述性的名称。

        6
  •  0
  •   Paolo Tedesco    16 年前

    如果您(以及您的同事/将在应用程序上工作的其他人)不感到困惑,那么使用相同的名称是完全合法的——这就是名称空间存在的原因。
    否则,您可能希望根据扩展基类的原因来命名类,例如,也可以使用dodesithisandth的ComboBoxedit,而不是使用泛型 我的 前缀。。。

        7
  •  0
  •   Austin Salonen gmlacrosse    16 年前

    我也建议避免命名冲突。对于名称,如果您有理由创建继承的控件,那么您应该能够提供一个有用的名称。

    这个 我的 前缀是严格限制的,对阅读代码的新用户来说没有什么价值。当你需要一个新的mycombox2时,你也会有碰到mycombox2的风险。

        8
  •  0
  •   ahawker    16 年前

    它没有什么非法之处,但是如果您在另一个文件中使用这样的using语句,就会遇到问题。

    using DevExpress.XtraEditors;
    

    然后,您将以intellisense的形式隐藏类名(因为两个类具有相同的名称);因此,您必须显式指定要使用的类。

    我假设…我从来没有用过Dev Express。我不知道XtraEditors是否是名称空间。