System.Runtime.InteropServices.ComTypes.FILETIME
2 つのオブジェクトを減算する最も安全な方法は何だろうか? 次のコードを使用しましたが、下位 32 ビット値の負の数が原因で ArithmaticOverflow 例外が発生することがあります。体を囲むunchecked
ことが目的に役立つかどうかはわかりません。実行時例外や CS0675 警告メッセージを表示せずに安全に実行する方法について、いくつか提案をお願いします。
private static UInt64 SubtractTimes(FILETIME a, FILETIME b)
{
UInt64 aInt = ((UInt64)(a.dwHighDateTime << 32)) | (UInt32)a.dwLowDateTime;
UInt64 bInt = ((UInt64)(b.dwHighDateTime << 32)) | (UInt32)b.dwLowDateTime;
return aInt - bInt;
}