[Serializable]
public class ComplexArray
{
#region Attributes
/// <summary>
/// Array Size
/// </summary>
protected int m_iSize;
/// <summary>
/// Real part of the data
/// </summary>
protected double[] m_dReal;
/// <summary>
/// Imaginary part of the data
/// </summary>
protected double[] m_dImag;
#region Construction
/// <summary>
/// Default constructor
/// </summary>
public ComplexArray()
{
}
public override bool Equals(object o)
{
if (this == (ComplexArray)o)
return true;
else
return false;
}
public static bool operator ==(ComplexArray src1, ComplexArray src2)
{
if (src1.m_iSize != src2.m_iSize)
return false;
for (int ii = 0; ii < src1.m_iSize; ii++)
{
if (src1.Real[ii] != src2.Real[ii])
return false;
if (src1.Imag[ii] != src2.Imag[ii])
return false;
}
return true;
}
public static bool operator !=(ComplexArray src1, ComplexArray src2)
{
if (src1 == src2)
return false;
else
return true;
}
}
I have a created a class called complex array and intention of this class is to save real and imaginary numbers and different operators have been overloaded like +,*,!=,==
Assume some function returns the instance of this class.
ComplexArray array = GetValue();
I want to check whether the reference is valid or not...
if(array != null)
{
//proceed further....
}
Issue : When the value is checked against null value, the exception occurs, because internally != overloaded function calls the ==.
How to avoid this kind of situation in operator overloading? Or how to make the operator != or == to check for the null value and return the correct values(true or false)