because p is struct it never be null so you should compare it to it's default value. In order to check equivalence between your value and dafault value.
If you use == you will get
cannot be applied to operands of type 'ProportionPoint' and 'ProportionPoint' error
because structs do not get an implementation of == by default. so you need to overload the == and != operators in your struct like this:
public static bool operator ==(firstOperand op1, secondOperand2 op2)
{
return op1.Equals(op2);
}
public static bool operator !=(firstOperand op1, secondOperand2 op2)
{
return !op1.Equals(op2);
}
and then :
if (this.p == default(ProportionPoint))
another option is to use Equals directly:
f (this.p.Equals.default(ProportionPoint))