5

私はこれに似たコンストラクターメソッドを持っています:

public class Foo
{
 public Foo (DateTime? startFrom)
        {
            _startFrom = startFrom;
        }
}

そして、私はこのコンストラクターメソッドを次のように呼び出しています:

   var context = new Foo(new DateTime(2012, 7, 15, 11, 2, 10, 2)); // 2 miliseconds

しかし、デバッグすると、Nullable DateTimeパラメーターであるデフォルトのコンストラクターに渡されると、002ミリ秒が000に設定されていることがわかります。

Nullable DateTimeを受け取るメソッドにパラメーターとして渡すと、DateTimeのミリ秒が失われるのは正常ですか?

4

3 に答える 3

4

いいえ、それは正常ではありません-そして私はこれが診断の問題であると強く疑っています。

コードをデバッグするとき、文字列表現でミリ秒を表示しないウォッチウィンドウを使用していると思われます。変数自体を展開すると、ミリ秒のコンポーネントが保持されていることがわかります。

(そうでない場合は、表示したスニペットだけでなく、問題を示す短いが完全なプログラムを提供してください。)

于 2012-06-22T08:21:51.203 に答える
1

私はそれを試したところ、ミリ秒を取得しました。これをどのように確認していますか?

デバッグモードで実行し、コンテキストを調べました。_startFrom.Millisecondの値は2です。

ToString()出力に依存していますか?デフォルトではミリ秒は表示されません。

于 2012-06-22T08:24:42.407 に答える
0

いいえ、そうではありません。そうではありません。デバッグウィンドウにはミリ秒が表示されません。それだけです。

新しいVS2010ソリューションを開き、あなたの言うことを再現できません。ミリ秒の部分を見ると、値は2です。

于 2012-06-22T08:23:07.657 に答える