GOTO inside using block, will the object get disposed?

后端 未结 4 1678
我寻月下人不归
我寻月下人不归 2020-12-11 23:24

I\'m quite unsure about using goto inside an using block.

For example:

using(stream s = new stream(\"blah blah blah\"));
{
         


        
4条回答
  •  暖寄归人
    2020-12-11 23:37

    The using statement is essentially a try-finally block and a dispose pattern wrapped up in one simple statement.

    using (Font font1 = new Font("Arial", 10.0f))
    {
        //your code
    }
    

    Is equivalent to

    Font font1 = new Font("Arial", 10.0f);
    try
    {
         //your code
    }
    finally
    {
         //Font gets disposed here
    }
    

    Thus, any jump from the "try-block", be it throwing an exception, the use of goto (unclean!) &tc. will execute the Disposal of the object being used in that "finally" block..

提交回复
热议问题