Ich frage mich, was ist der sicherste Weg, um zwei System.Runtime.InteropServices.ComTypes.FILETIME
Objekte zu subtrahieren? Ich habe den folgenden Code verwendet, aber manchmal gibt es mir ArithmaticOverflow Ausnahme aufgrund der negativen Zahl in niedrigen 32-Bit-Werten. Ich bin mir nicht sicher, ob die Umhüllung des Körpers mit unchecked
dem Zweck dient oder nicht. Bitte geben Sie mir einen Vorschlag, wie Sie das sicher tun können, ohne eine Laufzeitausnahme oder eine CS0675-Warnmeldung zu erhalten.Was ist der sicherste Weg, um zwei System.Runtime.InteropServices.ComTypes.FILETIME Objekte zu subtrahieren
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;
}