【问题标题】:Force customized system class usage强制自定义系统类使用
【发布时间】:2013-07-02 18:35:11
【问题描述】:

我创建了 MyToolStrip:ToolStrip{} 类。我的项目已经有大约 60 个工具条实例。

有没有办法(除了签名查找/替换):

  1. 强制我创建的所有表单使用 MyToolStrip 而不是 ToolStrip?
  2. 强制将来使用 MyToolStrip 而不是 ToolStrip(编译器警告足够好,但不是最好的)?

我相信没有正确的方法来标记 ToolStrip 已过时或“覆盖”或隐藏系统类。那么什么是最佳实践呢?谢谢。

【问题讨论】:

标签: c# visual-studio inherited


【解决方案1】:

有没有办法(除了签名查找/替换)强制我创建的所有表单使用MyToolStrip 而不是ToolStrip

我想不到 - 如果您的表单使用 ToolStrip 控件,则无法“注入”您的控件。即使您尝试使用巧妙的 #using 别名来隐藏标准控件,设计者也会默认将完整的命名空间添加到控件声明中:

private System.Windows.Forms.ToolStrip toolStrip1;

有没有办法(除了签名查找/替换)来强制将来使用MyToolStrip 而不是ToolStrip(编译器警告足够好但不是最好的)?

再说一次,我想不到。如果您可以控制ToolStrip,则可以将其标记为[Obsolete],这将导致编译器警告或错误(取决于您希望如何使用它),但由于它是一个框架类,您没有那么奢侈。

恕我直言,通过查找/替换更改 60 个实例并不算多...

【讨论】:

    猜你喜欢
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    相关资源
    最近更新 更多