My Fancy Field Updater throws.

```
    public static bool UpdateField<T>(ref T target, T value)
    {
        bool updated;
        if (0 != Comparer<T>.Default.Compare(target, value))
        {
            target = value;
            updated = true;
        }
        else
        {
            updated = false;
        }
        return updated;
    }

```

I use this Updater for 'Value Types', System 'Reference Types' and my own 'Reference Types'. My types do not implement IComparable and I don't intend to do so. In those cases it is usually acceptable to just compare the references.

The point is that I want to be able to us it for anything. Is there a different implementation that would allow me to do so or do I have to catch the exception and try to handle those cases differently?