How to validate left argument in my operator == method

J

Johan

Hi!

I have these to methods:

public override bool Equals(object obj)
{
if (obj == null)
return false;

Arg a = obj as Arg;
if (t == null)
return false;

return Id == t.Id;
}
public static bool operator ==(Arg left, Arg right)
{

return left.Equals(right);
}
I want to check if argument left is null in the ==method. But if i do it
like this
if(left == null)
that causes an infinite recursive call. So any suggestions on how to solve
this problem?
 
B

Bruce Wood

Hi!

I have these to methods:

public override bool Equals(object obj)
{
if (obj == null)
return false;

Arg a = obj as Arg;
if (t == null)
return false;

return Id == t.Id;
}
public static bool operator ==(Arg left, Arg right)
{

return left.Equals(right);
}
I want to check if argument left is null in the ==method. But if i do it
like this
if(left == null)
that causes an infinite recursive call. So any suggestions on how to solve
this problem?

How about

if (Object.ReferenceEquals(left, null))

?
 
M

Mattias Sjögren

I want to check if argument left is null in the ==method. But if i do it
like this
if(left == null)
that causes an infinite recursive call. So any suggestions on how to solve
this problem?

Cast to Object will prevent your operator overload to be called

if ((object)left == null)

Another way is to use Object.ReferenceEquals

if (Object.ReferenceEquals(left, null))


Mattias
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top