2013-03-04 67 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