何时创建泛型类和分部类

本文关键字:创建 泛型类 何时 | 更新日期: 2023-09-27 17:49:52

假设我有3个类,在这些类中我有2个通用函数和1个不同的,相同的成员(有些是相同的)。有些是不同的)。
这些类对象是在foreach循环中创建的,在一次迭代中只创建一个类对象。

我正在寻找更好的方法来创建类:

  1. 可以创建一个基类,然后驱动子类
  2. 可以创建一个主类,其余的作为内部类
  3. 可以创建一个抽象类,并作为不同的类休息
  4. 可以创建3个部分类
  5. 可以创建一个泛型类

我只是想知道更好的方法,以防我可以创建三个部分类或任何泛型类?-那么请解释一下。

我使用的是c# 3.0

何时创建泛型类和分部类

1。可以创建一个基类,然后驱动子类

好的候选人。但是,看看3。在下面。如果你有EmployeeManager类,其中Manager来自Employee,你应该使用这个解决方案。Employee不是抽象的

2。

可以创建一个主类,其余的作为内部类

糟糕的候选人。内部类只是类作用域的一种方式。大多数时候你应该避免使用公共内部类,这样内部类就变成了你的类的实现细节。

3。

好的候选人。和1一样。除非你的基类不能被实例化。如果您的基类是"不完整的",并且需要派生以完全指定,则应该选择此解决方案。如果您的类是Employee, SalariedEmployeeExternalEmployee,其中Employee是基类,则此解决方案是正确的。除非你知道雇员是受薪的还是外部的,否则不能正确地描述雇员。

4。可以创建3个局部类

糟糕的候选人。分部类是一种将类的源代码拆分为几个源文件的方法。

5。可以创建一个泛型类

可能是一个不好的候选人。泛型类用于创建单个(泛型)类,该类使用不同的类型参数实现相同的行为。你说你的类有不同的方法,而一个泛型类不会因为类型参数的不同而有"不同的方法"。

Partial class -允许您生成一个类,该类在同一程序集中的多个文件中实现。正如slfan所指出的,当类的一部分是生成的,而另一部分是手工编写的时候,这是非常有用的。

泛型类-允许您生成一个类,该类具有以特定方式工作的单个实现,但不关心它在什么地方工作。一个很好的例子就是List。List并不关心列表中实际是什么,但它知道如何获取第一个元素或删除第三个元素。

抽象类-允许您生成单个抽象类的多个子类。抽象类依赖于子类来实现一些方法。这与泛型类不同,因为抽象类知道需要发生的事情,但它不知道实际发生的事情是什么,子类知道。