Так как я думаю, что это может быть полезно для других, рассматривающих этот вопрос в будущем. Как уже говорилось, использование && обеспечивает необходимую вам функциональность. Но следует также отметить, что функциональность, которую вы боялись, заключалась в том, что обе стороны будут оцениваться независимо от результата первой оценки, используя & вместо &&. Итак:
//DO NOT USE THIS CODE
//this will throw an exception if myObject is null
//because myOject.Id != pId will still be evaluated
if(myObject != null & myObject.Id != pId)
{
myObject.Id = pId;
myObject.Order = pOrder;
}
Опять же, для этого примера вам НЕ нужен этот код. Я просто хотел добавить это к беседе, потому что могут быть случаи (хотя я никогда не находил), где вам нужна эта функциональность, например:
//always run both methods
if(MethodA() & MethodB())
{
//do stuff only when both methods return true
}