为什么F#编译器会检查`this!= null`?

时间:2018-08-03 08:51:23

标签: f#

F#编译器为我们做了很多工作。默认情况下,它实现IComparable<T>

但是,代码令人尴尬

type Either = | This | That

收益:

[CompilerGenerated]
public sealed override int CompareTo(Either obj)
{
    if (this != null)
    {
        if (obj != null)
        {
            int tag = _tag;
            int tag2 = obj._tag;
            if (tag == tag2)
            {
                return 0;
            }
            return tag - tag2;
        }
        return 1;
    }
    if (obj != null)
    {
        return -1;
    }
    return 0;
}

为什么这里有支票this != null?!

0 个答案:

没有答案