Skip to content

使用Equals会抛空异常 #13

@jaemok0421

Description

@jaemok0421

rt,zstring类对象在调用Equals与非空对象比较时会抛空。看起来是由于Equals内会将obj转为zstring类并进行非空判定,但重写的!=运算符号直接尝试获取left与right的value导致的

` public override bool Equals(object obj)
{
if (obj == null)
return ReferenceEquals(this, null);

        var gstr = obj as zstring;
        if (gstr != null)
            return gstr._value == this._value;

        var str = obj as string;
        if (str != null)
            return str == this._value;

        return false;
    }`

public static bool operator !=(zstring left, zstring right) { return !(left._value == right._value); }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions