0
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;

}

I am getting this error when I am running that code: Object reference not set to an instance of an object

How to remove the error in c#?

nietonfir
  • 4,797
  • 6
  • 31
  • 43
user3332507
  • 103
  • 1
  • 4

5 Answers5

5

Principle ONE of defensive programming - always check for NULL !

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;
    }

}
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
1

You can check if par is not null before accessing ParameterName

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;    
}
Adil
  • 146,340
  • 25
  • 209
  • 204
1

How about checking if it is null first?

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;

}
Adriaan Stander
  • 162,879
  • 31
  • 289
  • 284
1

ther'es a problem in your convertion to Parametre you have to check if null

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

}
Akrem
  • 5,033
  • 8
  • 37
  • 64
0

use this for checking 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;

}
Nagaraj S
  • 13,316
  • 6
  • 32
  • 53