【问题标题】:Class or Variables?类还是变量?
【发布时间】:2011-09-11 04:13:29
【问题描述】:

如果我需要从数据库中获取信息,例如从发票中获取项目...我应该将数据放入数据表中,并将它们存储到变量中,还是应该创建一个类?

什么更好?

MyClass.ItemNumber;
MyClass.Price;
MyClass.InvoiceNumber;

或者...

myItemNumber = (int)dt["itemnumber"];
myPrice = (double)dt["price"];
myInvNum = dt["InvNum"].ToString();

为什么?如果它是我永远不必在其他任何地方使用的东西,变量是否可以,或者创​​建一个“发票类”是否有益?如果我获取数据,将其存储在一个类实例中,它是否为.Net 中的表单帖子缓存?还是每个页面都在重新创建类实例/数据库调用等?性能怎么样?请解释概念。这些概念对我来说是最难掌握的……编码——容易。 .Net 的概念——没那么容易。

【问题讨论】:

标签: c# asp.net oop class


【解决方案1】:

使用自定义对象(类)来存储数据的两个主要原因是类型安全,以及将来易于理解/维护等。 MyInvoice.Customer 是什么比 dt[0][3].ToString()(string)dt["sCust"] 或其他一些可怕的魔术字符串方法更容易理解。

This article from Imar Spaanjaars explains how to use custom objects in ASP.NET development。它基于 ASP.NET 2.0,但在传达概念方面可能是同类产品中最好的。

【讨论】:

  • 你去......类型安全,易于理解/可维护性等,OP目前都不想要。简单地说,这个类现在是一个不需要的开销。
  • OP 继续说基本概念是混乱的根源——“为什么”。我不认为我误解了迈克尔的问题。
  • 在用我的代码愚弄了几天之后,我想我明白了。您的意见有所帮助。一旦我能够实际使用它,它就很清楚了。我喜欢类,它们只是看起来开销太大,但从长远来看,什么时候使用类对我来说是有意义的。我认为一个包含 20 个变量的类不会比仅将数据存储到 20 个变量中的开销(如果有的话)多吗?
  • 在网页中,您的变量是当前 Page 对象的属性,因此它们无论如何都属于一个类。存储要求不是 ASP.NET 中自定义对象或数据集之间决策的主要驱动因素 - 尽管数据集/数据表是相当大的结构。这些东西只会在框架处理代码和呈现响应所需的几百毫秒内持续存在。在那之后,它们都被标记为收集和处置。
【解决方案2】:

如果它仅用于立即使用,那么类绝对是不必要的开销。

您的数据表 dt 已经是内存中包含数据的实体。变量就够了。

【讨论】:

  • 我建议数据传输对象比 DataTable 需要的开销要少得多——DataTable 本身就是一个类。
  • @Mike 这里的情况只是将数据表与类一起使用,还是将临时变量与类一起使用,而不是数据表与类。数据表已经创建。您误读了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多