Changing parameter values is considered an anti-pattern, but I find it useful sometimes with optional parameters in C#:
public void Foo(int p1, MyClass fooObj = null)
{
    if (fooObj == null)
    {  
        fooObj = LoadFooObj(....
    }
    . . .
}
Is something here potentially harmful I may be missing?
Thanks.
 
     
     
    