2013-03-04 34 views
2

我试图可选System.DateTime的参数传递到构造函数在VB.NET 2010使用的System.DateTime在Visual Basic VB.Net类型作为可选参数2010

... 
Public Sub New(Optional ByVal givendate As System.DateTime = System.DateTime.MinValue) 
    ... 

我正在一个错误“Konstanter Ausdruck erforderlich”翻译成“需要不变价值”。我试图用MinValue填充一个变量,但是我必须使该变量只读,当尝试将默认值传递给可选参数时会导致完全相同的问题。 有没有办法将MinValue作为默认值传递给可选的DateTime(实际上是Date类型)。 谢谢你的观众。

回答

1

嗯,我发现在此期间的解决方案(感谢在vbdotnetformums.com乡亲,所以我想和大家分享的结果:

首先可能的解决方案,可以将所述参数定义对象和默认值没有然后铸造日期时间

第二和清洁溶液(和一个跟随我)中的过载的构造

这里是由IanRyder溶液(vbdotnetforums.com):

Public Class MyClassExample 
    Public Property DateToUseInClass As DateTime 

    Public Sub New() 
    DateToUseInClass = System.DateTime.Now 
    End Sub 

    Public Sub New(ByVal GivenDate As System.DateTime) 
    DateToUseInClass = GivenDate 
    End Sub 
End Class 

然后,我可以实现我想有行为:

Dim myVariable As New MyClassExample 

Dim myVariable As New MyClassExample(DateTime.Today.AddDays(-1)) 

它的工作正是我想要的方式。我希望有一天有人会从中获利。

1

您可以设置没有默认函数的参数值,然后将今天的日期时间函数

Public Sub New(Optional ByVal fDate As System.DateTime = Nothing) 
     If fDate = Nothing Then 
      fDate = Now 
     End If 
    End Sub 
相关问题