c# - Order of evaluation, instance and method parameters -
suppose write following code:
int x = 42; if (x.equals(x = foo())) console.writeline("ok"); where foo method returning integer. guaranteed method invocation target (the first x) evaluated before replaced return value of foo()? in other words, code guaranteed print ok if , if return value of foo() equal 42?
i've seen other questions deal order of parameter evaluations, don't talk when instance (first x) gets evaluated during runtime non-static methods -- clarify me?
this problem called sequence points. represented happens when put increment operator inside expression.
in case of c# strictly defined expression , method parameters evaluated left right, inside out , assignment (and side effects in general) visible rest of expression.
you can read more here.
Comments
Post a Comment