何时创建Generic和partial类

时间:2011-04-13 12:11:40

标签: c# .net class

假设我有3个班级,在这些班级中我有2个共同的功能和1个不同的,与成员相同(有些是相同的。有些是不同的。) 这些类对象是在foreach循环中创建的,在一次迭代中只创建了一个类对象。

我正在寻找更好的创作方法:

  1. 可以创建基类,然后驱动子类
  2. 可以创建一个主类,休息作为内部类
  3. 可以创建一个抽象类,并作为不同的类休息
  4. 可以创建3个部分类
  5. 可以创建泛型类
  6. 我只是想知道更好的方法,以防我可以创建三个部分类或任何泛型类? - 然后请解释。

    我正在使用C#3.0

2 个答案:

答案 0 :(得分:1)

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

好的候选人。但是,请看下面的3.如果您的课程EmployeeManager Manager来自Employee,则应使用此解决方案。 Employee不是抽象的。

<强> 2。可以创建一个主类,作为内部类休息

不好的候选人。内部类只是一种范围类的方法。大多数时候你应该避免公共内部类,然后内部类只是成为你的类的实现细节。

第3。可以创建一个抽象类,并作为不同的类休息

好的候选人。与1.相同,但无法实例化基类。如果您的基类是“不完整”并且需要派生以完全指定,则应选择此解决方案。如果您的课程为EmployeeSalariedEmployeeExternalEmployee,其中Employee是基类,此解决方案是正确的。除非您知道员工是受薪还是外部员工,否则员工的描述不正确。

<强> 4。可以创建3个部分类

不好的候选人。部分类是一种将类的源代码拆分为多个源文件的方法。

<强> 5。可以创建泛型类

可能是一个糟糕的候选人。通用类用于创建单个(通用)类,该类使用不同的类型参数实现相同的行为。您描述了您的类具有不同的方法,并且泛型类没有“不同的方法”,具体取决于类型参数。

答案 1 :(得分:0)

Partial Class - 允许您生成在同一个程序集中的多个文件中实现的一个类。正如slfan指出的那样,当生成部分类并且部分是手写时,这非常有用。

Generic Class - 允许您生成一个类,该类具有以特定方式工作的单个实现,但不关心它的工作原理。这个的完美例子是List。 List不关心列表中的实际内容,但它知道如何获取第一个元素或删除第三个元素。

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

相关问题