TicksをTimeSpanに変換したい。TicksをTimeSpanに変換する
私は以下のようにConvertToTimeSpan
機能が必要です。
var ticks = 10000;
TimeSpan ts = ConvertToTimeSpan(ticks); // not working
Console.WriteLine(ts); // expected output --> {00:00:00.0010000}
TicksをTimeSpanに変換したい。TicksをTimeSpanに変換する
私は以下のようにConvertToTimeSpan
機能が必要です。
var ticks = 10000;
TimeSpan ts = ConvertToTimeSpan(ticks); // not working
Console.WriteLine(ts); // expected output --> {00:00:00.0010000}
ティックの数を受け入れるTimeSpan(Int64)
コンストラクタは、あります:
https://msdn.microsoft.com/en-us/library/zz841zbz(v=vs.110).aspx
はティックの指定された数にのTimeSpan構造体の新しいインスタンスを初期化します。それは暗黙の
Int32
だから、あなたが終わるアップされますので、間違ったメソッドオーバーロードを使用して、あなたが、var ticks = 1
を使用してはならないので、.NET、ティックで
は常に、Int64
として表現されています。代わりに、明示的な型宣言または長いリテラル値(var ticks = 1L
)を指定します。
.NET Frameworkに既に存在するTimeSpan.FromTicks(Int64)
メソッドが必要です。
この方法では、他の回答で示唆されているように、時間幅のconstructorを使用します。あなたが深く掘りたい場合は、reference source codeでそれを確認することができます。
ConvertToTimeSpan
メソッド内で何が起こっているのかわからないのですが、これを行うための追加メソッドは必要ありません。TimeSpan
クラスのコンストラクタを使用してこの作業を行うことができます。そこつのパラメータを受け入れる唯一のオーバーロードは、ある暗黙のうちにint` `から変換されます` long`を取って、それはdoesnの
var ticks = 1;
TimeSpan ts = new TimeSpan(ticks);
Console.WriteLine(ts);
:このExampleを見ていると、次のコードで試して作ります彼がこの特定の場合に 'var'を使用したことは問題ではありません。 –
また、変数を 'var ticks = 10000L'として定義すると、コンパイラはその番号をlongとして欲しいと認識させることができます。 – Georg