【发布时间】:2015-01-06 23:07:48
【问题描述】:
我没有太多的课程,所以我认为这是一个初学者的问题。
我有一个具有以下属性的类:
Private pAvtalsslut As Date
''''''''''''''''''''''
' Avtalsslut property
''''''''''''''''''''''
Public Property Get Avtalsslut() As Date
Avtalsslut = pAvtalsslut
End Property
Public Property Let Avtalsslut(Value As Date)
pAvtalsslut = Value
End Property
当我为这个类的对象设置属性值时,我在我的 subs 中使用以下验证:
If IsDate(exportWks.Cells(r, lColumnAvtalsslut)) Then
avtal.Avtalsslut = exportWks.Cells(r, lColumnAvtalsslut)
End If
我这样做是因为否则当我读取的单元格为空时会出错。
当我从这个类的对象中获取属性值时,我会在我的 subs 中使用以下验证:
If avtal.Avtalsslut <> 0 Then
wUnderlag.Cells(row, 3) = avtal.Avtalsslut
End If
我这样做是因为我不想在没有日期的地方写零。在这种情况下,我想将单元格留空。
现在我的问题。这些类型的验证有哪些最佳实践?我应该让他们在我的课堂上还是在我的潜艇上?如果他们应该在我的班上,那应该怎么看?
(PS.验证是这类检查的正确词汇吗?)
【问题讨论】:
-
一般来说,拥有类属性(getter 和 setter)的目的是对传入和传出数据进行数据验证。因此,任何数据验证大部分时间都应该在实际分配/返回值之前在属性主体内进行。您的实际问题是什么,因为最佳实践过于广泛 - 一切都取决于您面临的情况。
-
除了从电子表格读取/写入之外,您是否打算将此类用于其他任何事情?答案实际上取决于了解预期用途。
-
@RubberDuck:我只想从一个文件中读取并写入另一个文件。当日期什么都不是时,我希望班级忽略阅读和写作。