private static void SaveOrRemove<T>(string key, T value)
{
if (value == null)
{
Console.WriteLine("Remove: " + key);
}
//...
}
如果我传递0到value:
SaveOrRemove("MyKey", 0)
,条件value == null
是假的,那么CLR不会进行value == default(T)
。实际上会发生什么?
IEqualityComparer<T>
-例如,在构造映射或集时。 - Jon Skeet