использование 'using' в .NET - PullRequest
       36

использование 'using' в .NET

5 голосов
/ 13 января 2010

В приведенном ниже примере, будут ли возвращенные pen уничтожены (уничтожены) или нет?

' VB'
Public Function GetPen() As System.Drawing.Pen
  Using pen As New System.Drawing.Pen(_Color, _Width)
    pen.DashStyle = _DashStyle
    Return pen
  End Using
End Function

// C#
public System.Drawing.Pen GetPen()
{
    using (System.Drawing.Pen pen = new System.Drawing.Pen(_Color, _Width)) 
    {
        pen.DashStyle = _DashStyle;
        return pen;
    }
}

[EDIT]

Еще одна точность... Объект Pen отправляется вызывающей стороне GetPen по ссылке или «клонируется» как структура?Я знаю, это класс, но с объектами GDI я никогда не уверен ...

Будет ли он уничтожен (уничтожен) pen, созданным в GetPen(), когда внешний метод избавится от его pen полученный с GetPen()?

Ответы [ 11 ]

0 голосов
/ 13 января 2010

Ваш Pen объект будет удален до завершения возврата, и вы останетесь с объектом пера в недопустимом состоянии.

...