static int ComparaeToDefaults<T>(T value) where T : IComparable<T>
{
return value.CompareTo(default(T));
}
static void Main(string[] args)
{
Console.WriteLine(ComparaeToDefaults("x"));
Console.WriteLine(ComparaeToDefaults(""));
Console.WriteLine(ComparaeToDefaults(10));
Console.WriteLine(ComparaeToDefaults(0));
Console.WriteLine(ComparaeToDefaults(-10));
Console.WriteLine(ComparaeToDefaults(DateTime.MaxValue));
Console.WriteLine(ComparaeToDefaults(DateTime.Now));
Console.WriteLine(ComparaeToDefaults(DateTime.MinValue));
}