C# “;对象引用未设置为对象的实例;错误 public override bool Equals(对象对象对象) { var par=obj作为参数; 如果(ParameterName==par.ParameterName)/*

C# “;对象引用未设置为对象的实例;错误 public override bool Equals(对象对象对象) { var par=obj作为参数; 如果(ParameterName==par.ParameterName)/*,c#,C#,原则是防御编程的一个原则-始终检查NULL public override bool Equals(object obj) { var par = obj as Parameter; if (ParameterName == par.ParameterName ) /* <=throws error at this code */ return true; else return false; } 在访问ParameterNam

原则是防御编程的一个原则-始终检查
NULL

public override bool Equals(object obj)
{
    var par = obj as Parameter;
    if (ParameterName == par.ParameterName )  /* <=throws error at this code */
        return true;
    else
        return false;

}

在访问
ParameterName

public override bool Equals(object obj)
{
    // this statement CAN FAIL if your "obj" is *NOT* of type "Parameter"
    var par = obj as Parameter;

    // so therefore you MUST be ready to deal with a NULL value here!
    if (par != null && ParameterName == par.ParameterName)  
    {
        return true;
    }
    else
    {
        return false;
    }

}
public override bool Equals(对象对象对象)
{
var par=obj作为参数;

如果(par!=null&&ParameterName==par.ParameterName)/*首先检查它是否为null如何

public override bool Equals(object obj)
{
    var par = obj as Parameter;
    if (par!= null && ParameterName == par.ParameterName )  /* <=throws error at this code */
        return true;
    else
        return false;    
}
public override bool Equals(对象对象对象)
{
var par=obj作为参数;

如果(par!=null&&ParameterName==par.ParameterName)/*转换为参数时出现问题,则必须检查是否为null

public override bool Equals(object obj)
{
    var par = obj as Parameter;
    if (par != null && ParameterName == par.ParameterName )  /* <=throws error at this code */
        return true;
    else
        return false;

}

使用此选项检查
par!=null
null

public override bool Equals(object obj)
{
   var par = obj as Parameter;
   if (par  != null && ParameterName == par.ParameterName ) 
      return true;
   else
      return false;

}

@如果
par.ParameterName
为null,则不会引发异常。
public override bool Equals(object obj)
{
   var par = obj as Parameter;
   if (par  != null && ParameterName == par.ParameterName ) 
      return true;
   else
      return false;

}