Special case lifetime analysis

Viewed 205

Suppose I have

void foo () {
    Bar bar = new Bar(); // bar is never referred to after this line
    // (1)
    doSomethingWithoutBar();
}

At (1), is the object bar is pointing to eligible for garbage collection? Or does bar have to fall out of scope as well? Does it make a difference if GC.Collect is called by doSomethingWithoutBar?

This is relevant to know if Bar has a (C#) destructor or something funky like that.

5 Answers
Related