The null conditional operator can be used to skip method calls on a null target. Would the method arguments be evaluated or not in that case?
For example:
myObject?.DoSomething(GetFromNetwork());
Is GetFromNetwork
called when myObject
is null
?
They will not be evaluated.
class C
{
public void Method(int x)
{
Console.WriteLine("Method");
}
}
static int GetSomeValue()
{
Console.WriteLine("GetSomeValue");
return 0;
}
C c = null;
c?.Method(GetSomeValue());
This does not print anything. Resharper marks the evaluation of GetSomeValue()
as dead code: