2

オプションの System.DateTime パラメーターを VB.NET 2010 のコンストラクターに渡そうとしています。

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

「定数値が必要です」というエラー「Konstanter Ausdruck erforderlich」が表示されます。変数に MinValue を入力しようとしましたが、この変数を読み取り専用にする必要があり、オプションのパラメーターにデフォルト値として渡そうとするとまったく同じ問題が発生します。MinValue をデフォルト値としてオプションの DateTime (実際には Date 型) に渡す方法はありますか。ご覧いただきありがとうございます。

4

2 に答える 2

1

それまでの間、解決策を見つけました (vbdotnetformums.com の人々に感謝しますので、結果を共有したいと思います:

最初に考えられる解決策は、パラメーターを Object として定義し、デフォルト値を Nothing として定義することです。次に、DateTime をキャストします。

2番目のよりクリーンな解決策(および私が従った解決策)は、コンストラクターをオーバーロードすることでした。

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))

それはまさに私が望んでいた方法で機能しました。いつか他の誰かがそれから利益を得ることを願っています。

于 2013-03-05T16:19:06.180 に答える