In .Net 2.5 I can usually get an equality comparison (==) between a value and its type default
if (myString == default(string))
However I g
Defaults are pitched at scalar types.
Ask yourself this question: What does it mean for KVP to have a default value?
For non-scalars the default is whatever you get from calling the nil constructor. Assuming that KVP Equals performs instance identity comparison, I would expect it to return false since you get a new object each time the constructor is invoked.