假设我在VB.NET中有这个子:
''' <summary>
''' Validates that <paramref name="value"/> is not <c>null</c>.
''' </summary>
'''
''' <param name="value">The object to validate.</param>
'''
''' <param name="name">The variable name of the object.</param>
'''
''' <exception cref="ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
Sub ValidateNotNull(ByVal value As Object, ByVal name As String)
If value Is Nothing Then
Throw New ArgumentNullException(name, String.Format("{0} cannot be null.", name))
End If
End Sub
调用此ValidateNotNull(我在C#中称之为)是否合适,还是应该坚持使用Visual Basic术语并将其称为ValidateNotNothing?另外,在我的例外中,说“不能为空”是否合适,或者说“不能无所谓”会更好吗?
我有点像我拥有它的方式,但由于这是Visual Basic,也许我应该使用Nothing。但是由于异常本身被称为ArgumentNullException,因此让消息说“不能没有”感觉很奇怪。
答案 0 :(得分:4)
我认为你很好地坚持Null。这不是没有先例。例如,.NET框架开发人员没有为VB社区创建String.IsNothingOrEmpty
。并且它也不像Null是一个模糊的概念,任何编程或使用数据库超过一周的人都已经看到了它。
考虑到这一点,考虑您的受众是可以的。如果您的代码进入可供其他开发人员使用的类库,那些开发人员可能习惯于将null视为null。另一方面,如果这只是一些只能维护的代码库的一部分,那么查看它的VB人可能会看到“没什么”。尽可能符合标准,但要知道您的语言标准可能不一定是您的消费者的标准。
但如前所述,Null应该没问题。
答案 1 :(得分:1)
另外,在我的例外中,它是否合适 说“不能为空”,或者它会是 更好地说“不能没事”?
多个工具(包括我们的VSdocman)接受&lt; see langword =“null”/&gt;。这将产生与MSDN完全相同的文本:“null引用(在Visual Basic中 Nothing ”)。您也可以将其用于其他关键字,例如true,false,abstract等。有关详细信息,请参阅<see> tag syntax。