0

.Net DateTime プロパティを割り当てることができないのはなぜですか? 次のようなことができると便利です。

DateTime saveNow = DateTime.Now;
saveNow.Second = 0; //Error, it does not compile
4

3 に答える 3

1

これらはアクセサ プロパティであるため、読み取り専用です。

DateTime now = DateTime.Now;
DateTime saveNow 
   = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0);
于 2013-06-10T15:50:10.997 に答える
1

これを試して:

DateTime saveNow = DateTime.Now;

saveNow.AddSeconds(-savenow.Second); AddSeconds値を変更せず、新しい値を持つ新しいインスタンスを返します。このバージョンは動作します:

saveNow = saveNow.AddSeconds(-savenow.Second);
于 2013-06-10T15:50:47.013 に答える
0

@SLaksと@Gabeが言ったことを要約します:

DateTime は構造体 (クラスではない) であり、変更可能な構造体は悪い習慣です。詳細はこちらをご覧ください なぜ変更可能な構造体が悪なのですか?

このため、DateTime は変更できないように設計されています。

DateTime の「seconds」フィールドを 0 に設定するには、次のコードを使用できます。

DateTime now = DateTime.Now;
DateTime saveNow 
 = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0);
于 2013-06-12T06:13:54.360 に答える