【发布时间】:2011-06-10 02:14:01
【问题描述】:
我想知道减去两个 System.Runtime.InteropServices.ComTypes.FILETIME 对象的最安全方法是什么?我使用了以下代码,但有时由于低 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;
}
【问题讨论】:
标签: c# .net bitwise-operators overflowexception filetime