2016-09-28 7 views
0

私はC#オブジェクトを構築して、すべてのパラメータを文字列として受け入れるWebアプリケーションに、より強く型付けされたプロパティを追加します。このWebアプリケーションでは、レコードの現在の値がすべて左側に表示され、右側に空白のフィールドが表示されます。テキスト入力フィールドを空白のままにすると、データベースの対応する値は変更されません。新しい値を入力すると、submit時に、対応する値が入力した新しい値に変更されます。アプリでDateTimeプロパティに文字列プロパティを追加する

は、日付フィールドは、MM/DD/YYYYフォーマットされた文字列に入力されます。私はC#オブジェクトにDateTime equivilentsを作成し、Webアプリケーションに送るときに.ToString( "MM/dd/yyyy")を使用します。

public DateTime NewHireDate 
{ 
    get 
    { 
     return (DateTime.TryParse(NewValue11, out dateValue) ? dateValue : DateTime.MinValue); 
    } 
    set 
    { 
     NewValue11 = value.ToString("MM/dd/yyyy"); 
    } 
} 

一つのしわは、ウェブアプリは、基本的に日付フィールドでの値を出しnullに「BLANK *」ユーザーが入力することができるということです。文字列「* BLANK」を自分の日付プロパティの値として割り当てることで、その正確な能力をオブジェクトに拡張したいと考えています。私はmyObject.NewHireDate =「* BLANK」を使用できるよう

にはどうすれば文字列としてNewHireDateプロパティを再定義するのでしょうか?

+2

ですね'ではなく 'DateTime'の - プロパティをその時点では、あなたが'に変換でき値 'null'なのでを、」割り当てることができます*文字列プロパティのための "BLANK"。すでに*文字列プロパティを持っています - それで '* BLANK"を使うべきです。 –

+0

これは、プロパティにnullを割り当てると、このシナリオでは値を変更しないようにWebアプリに指示するフィールドを空白のままにすることと同じになります。 –

+0

さて、2つのセンチネル値が必要なように聞こえます - ヌルと何か他のもの(潜在的には 'DateTime.MinValue'となる可能性があります)でも、文字列プロパティを' '* BLANK" ' 。 –

答えて

1

の人がコメントに言ったように、U字型

日時を使用することができますか?

代わりの日時。

これは、あなたがDateTimeプロパティにNULL値を設定することができます。

これを行うには、これらの文字列をDateTime形式に変換するクラスにメソッドを作成します。

参考:?あなたの財産はタイプ `日時でなければなりませんようにhttps://msdn.microsoft.com/en-us/library/2cf62fcy(v=vs.140).aspx

+0

DateTimeに設定していますか?値= "* BLANK"を設定することはできません。 –

+0

しかし、 "* Blank"という文字列をnullの日付に変換することができます。逆も同様です。 IE: ' '{ MyDateに該当= NULL(のmyStringは、) "*ブランク"(等しい)場合。 } '」 と後方...like ' if(myDate == null){ myString =" *ブランク "; これをクラスメソッドまたは拡張として作成することもできます。 STRINGを日付に設定することはできませんが、同様の方法で動作させるためのインターフェイスを作成することができます。 – Revista

+0

しかし、私は強く型付けされたプロパティを持つ利点を失う。 –

関連する問題