public static void CheckMemoryLeaks()
{
#if DEBUG
foreach (var pair in _AllocatedObjects) {
Console.WriteLine("ERROR: {0}* at 0x{1} leaked", pair.Value, pair.Key.ToString("X"));
}
if (_AllocatedObjects.Any()) {
throw new ApplicationException("Memory leaks detected");
}
#endif
}