2010-06-09 77 views
0

比方说,我有这样子在VB.NET: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,因此让消息说“不能成为Nothing”的感觉很奇怪。

回答

4

我认为你很好,坚持与空。这不是没有先例。例如,.NET框架开发人员并未为VB社区创建String.IsNothingOrEmpty。而且它也不像Null那样是一个模糊的概念,任何已经编程或使用数据库超过一周的人都已经看到了它。

考虑到这一点,可以考虑你的观众。如果您的代码正在进入可供其他开发人员使用的类库中,则这些开发人员可能习惯将null视为null。另一方面,如果这只是一些只能维护的代码库的一部分,那么看着它的VB人可能会期望看到“Nothing”。尽可能符合标准,但要知道您的语言标准可能不一定是您的消费者的标准。

但如前所述,Null应该没问题。

1

而且,在我的例外,是恰当的 说:“不能为空”,还是会 不如说“不能没有”?

一些工具(包括我们VSdocman)接受<看到langword = “空”/ >。这将生成与MSDN完全相同的文本:“空引用(Nothing in Visual Basic)”。您也可以将其用于其他关键字,例如true,false,abstract等。有关更多详细信息,请参阅。

+0

啊,对不起。我误解了这个问题。我指的是使用 null的异常文档。现在我发现你的意思是异常消息。 – 2010-06-09 07:21:40

+0

+1还是个不错的提示:) – Ergwun 2011-03-11 00:30:56