【发布时间】:2011-05-12 16:01:18
【问题描述】:
我正在维护一组代码,其中包含用于 SqlDataAdapter 的包装类以加载 System.Data.DataTable。它有一个通用函数来确定 DataTable 是否“hasRecords”。我知道这是一个小问题,但出于好奇……哪种方法使用起来更快?
现有:
Public ReadOnly Property hasRecords() As Boolean
Get
hasRecords = CBool((CBool(BOF = True) And CBool(EOF = True)) = False)
End Get
End Property
或 可能的新:
Public ReadOnly Property hasRecords() As Boolean
Get
hasRecords = IIf(RecordCount > 0, True, False)
End Get
End Property
如果 RecordCount 被定义为记录集属性中的固定值,我认为作为单个 eval 与它使用的多部分转换/eval BOF/EOF 方法相比,计数会更快。
还有什么不改的理由吗?
【问题讨论】:
-
我们在说什么类型?你提到了记录集和数据集。
-
一个小小的挑剔,但假设 BOF 和 EOF 是布尔值,hasRecords = CBool((CBool(BOF = True) And CBool(EOF = True)) = False) 可以重写为 hasRecords =不是(BOF 和 EOF)。此外,hasRecords = IIf(RecordCount > 0, True, False) 可以简单地为 hasRecords = (RecordCount > 0)。
标签: asp.net vb.net performance visual-studio-2008