6

メソッドの次のコードがありますAddTicks。datetime オブジェクトの Ticks プロパティは、AddTick メソッドの前後で同じ値を返しています。なぜそのように振る舞うのですか?

ミリ秒には 10,000 ティックがあります。

Ticks: このプロパティの値は、0001 年 1 月 1 日の午前 0 時 00 分 (DateTime.MinValue を表す) から経過した 100 ナノ秒間隔の数を表します。

AddTicks : 指定されたティック数をこのインスタンスの値に追加します。

注:.Net 4.0フレームワークを使用しています

コード

    static void Main()
    {


        DateTime dt2 = new DateTime(2010, 5, 7, 10, 11, 12, 222);

        long x = dt2.Ticks;
        dt2.AddTicks(9999);

        long y = dt2.Ticks;

        bool isSame = false;
        if (x == y)
        {
            isSame = true;  
        }


        Console.WriteLine(isSame);
        System.Console.ReadKey();
    }
4

2 に答える 2

21

AddTicks(および他のAdd*メソッド) は DateTime を変更しませんが、新しいオブジェクトを返します。

だからあなたは使うべきです

dt2 = dt2.AddTicks(...)

DateTime値型であり、不変です。

于 2013-01-10T08:47:25.730 に答える
3

DateTime 値 (文字列など) は不変です。

DateTime インスタンスに対する操作は、そのインスタンスの値を変更しませんが、代わりにキャプチャする必要がある新しい DateTime 値を返します。

dt2 = dt2.AddTicks(9999);
于 2013-01-10T08:50:11.047 に答える