我应该使用C#程序中的Main方法还是reader方法来创建列表?

我应该使用C#程序中的Main方法还是reader方法来创建列表?,c#,visual-studio,main,C#,Visual Studio,Main,我正在从事一个项目,该项目将从excel表格中读取数据,将每一行放入一个名为“Sale”的类中,然后在将来处理该列表。我应该将销售添加到我用来阅读excel文档的类(标题为“Reader”)中的列表中,还是应该在主类和方法中创建列表。我目前有我的主要方法来创建阅读器的一个实例。然后,该读取器将行或“Sales”传递给一个修饰符,该修饰符将对行进行排序。然后,printer类将该列表作为参数,并将其打印到不同文档上的同一工作簿上 做一件或另一件事会对我的计划产生重大影响吗?如果是的话,为什么以及在

我正在从事一个项目,该项目将从excel表格中读取数据,将每一行放入一个名为“Sale”的类中,然后在将来处理该列表。我应该将销售添加到我用来阅读excel文档的类(标题为“Reader”)中的列表中,还是应该在主类和方法中创建列表。我目前有我的主要方法来创建阅读器的一个实例。然后,该读取器将行或“Sales”传递给一个修饰符,该修饰符将对行进行排序。然后,printer类将该列表作为参数,并将其打印到不同文档上的同一工作簿上


做一件或另一件事会对我的计划产生重大影响吗?如果是的话,为什么以及在效率和组织方面哪个更好

我同意@Deolus关于
销售
为其自有类别的说法

Sales
Reader
分开,因为它们有不同的用途。如果创建
Reader
类是为了从excel工作表中单独读取数据,那么这应该是它唯一的目标。在
Sales
类中,您可以创建其他方法以在将来操纵销售列表


做一个或另一个会对我的课程产生重大影响吗?

就运行程序的速度而言,这不会有什么区别,但就可维护性而言,这是黄金

这是一个完美的例子。您越能保持代码的条理性,并且不会弄乱意大利面条式的代码,将来维护此代码时,您的效率和效率就越高。因此,重要的区别在于,在未来你必须保持和维持这一点


我希望这会有所帮助。

我同意@deolos的说法,即
销售是它自己的类

Sales
Reader
分开,因为它们有不同的用途。如果创建
Reader
类是为了从excel工作表中单独读取数据,那么这应该是它唯一的目标。在
Sales
类中,您可以创建其他方法以在将来操纵销售列表


做一个或另一个会对我的课程产生重大影响吗?

就运行程序的速度而言,这不会有什么区别,但就可维护性而言,这是黄金

这是一个完美的例子。您越能保持代码的条理性,并且不会弄乱意大利面条式的代码,将来维护此代码时,您的效率和效率就越高。因此,重要的区别在于,在未来你必须保持和维持这一点


我希望这会有所帮助。

这是一个棘手的问题,因为您没有定义您以后使用的操作/类。 如果您将有另一个类处理该数据,那么最好从内存中删除reader类的实例。 然而,将列表保留在主类中也可能不好,例如,知道您是通过值传递还是通过引用传递是很重要的。让您的reader类传递值,让您的主类保存这些值并将它们传递给您的工作类,这可能会对cpu(因为这需要更多的步骤)和内存有害,因为您创建了副本-并且在传递数据之后,您可能不再需要主类中的数据

硬盘空间也是影响效率的因素(尽管没有人关心这一点,但对于小型应用程序来说,这毕竟并不重要)——占用硬盘空间越少的代码越少,通常会对内存和/或cpu造成更大的压力


您的问题通常很模糊,无法明确说明什么更有效,但您还必须注意,代码优化是为了增强现有代码,而不是首先构建代码本身。

这是一个棘手的问题,因为您没有定义以后要使用的操作/类。 如果您将有另一个类处理该数据,那么最好从内存中删除reader类的实例。 然而,将列表保留在主类中也可能不好,例如,知道您是通过值传递还是通过引用传递是很重要的。让您的reader类传递值,让您的主类保存这些值并将它们传递给您的工作类,这可能会对cpu(因为这需要更多的步骤)和内存有害,因为您创建了副本-并且在传递数据之后,您可能不再需要主类中的数据

硬盘空间也是影响效率的因素(尽管没有人关心这一点,但对于小型应用程序来说,这毕竟并不重要)——占用硬盘空间越少的代码越少,通常会对内存和/或cpu造成更大的压力


您的问题通常很模糊,无法明确说明什么更有效,但您还必须注意,代码优化是为了增强现有代码,而不是首先构建代码本身。

Sales
可能应该是一个单独的类,维护
Sale
项目列表。然后可以添加方法来操作该类中的列表。
Reader
方法应该就是这样。它检索用于创建
Sale
对象的excel数据,然后使用
Sales.Add()
方法将其添加到列表中。如果
Sale
表示行数据,则应将其与其存储区分开。您可以让
列出销售
,而
阅读器
将执行
销售。添加(销售)
。这样,存储实现可以在不更改销售类别的情况下更改(队列或堆栈)。
Sales
可能应该是一个单独的类别,用于维护
Sale
项目的列表。然后可以添加方法来操作该类中的列表。
Reader
方法应该就是这样。它检索excel数据,您可以使用这些数据创建
Sale
ob