3

这是我之前的问题Stop my "Utility" from give errors between different architectures的后续内容,假设我正在尝试创建一个看起来像这样的类库:

- Class Utility (Parent class)
     ... Utility functions and methods
         (EG: Public Sub Sub1() )

  - Class Utility_Web
       ... Functions and methods only related to Web / Web-Controls
         (EG: Public Sub Web_Sub1() )

  - Class Utility_WinForms
       ... Functions and methods only related to Winforms / WinForm-Controls
         (EG: Public Sub WinForm_Sub1() )

现在,我想做的就是将Utilitydll 添加为对我的任何项目的引用,并能够通过简单地输入来访问所有 3 个类中的函数和方法,例如:

Utility.Sub1
Utility.WebSub1
Utility.WinFormSub1

换句话说,不必键入

Utility.Utility_Web.Websub1

并且使最终程序员不需要知道该实用程序的内部结构,他们可以仅使用Utility.命名法来引用它的所有方法/函数。

我该怎么做呢?这在哪里NameSpaces生效?Inheritance? Partial Classes? Modules而不是类?

4

3 回答 3

5

如果要使用相同的类名访问这些方法,似乎没有任何理由将它们放在单独的类中。

如果您想将代码拆分到多个源文件以用于组织目的,您可以使用部分类

于 2013-01-22T16:32:58.380 回答
2

这似乎是一个极好的实例,您希望使用部分类,所有类都使用相同的 Utility 命名空间。这将允许您使用 Utility.WebSub1 访问方法并减少一个步骤。

于 2013-01-22T16:35:19.173 回答
1

一个名为Utility的类从一开始就是一个坏类。它的用途是什么?它对你有什么帮助?有多少其他人将命名类实用程序?

为您的类命名,将它们关联到具有逻辑和功能意义的命名空间中。

假设您正在制作一组静态方法来帮助处理表示Month. 为什么不把方法放进去Month?如果您正在编写将数据从一种表示形式转换为另一种表示形式的方法,请以这种方式命名(即MonthDataTranslation)。

不要担心在您的客户或您的客户代码方面打字。Intellisense 和 C# using 语句在很大程度上缓解了这一问题,并且考虑到在名称错误、模糊不清的实用程序类和长而名称良好的类之间进行选择,我每次都会选择后者。

于 2013-01-22T16:43:33.433 回答