Pull to refresh

Using или Using?

Reading time 1 min
Views 15K
Заголовок этого сообщения обескураживает, не правда ли? Тем не менее, вы достаточно сообразительны, чтобы догадаться, о чем пойдет речь. На собеседовании по .NET часто задают вопрос: ”Чем отличаются директива using и оператор using?” Иногда перед соискателем ставят дополнительные ловушки, спрашивая, в каких местах программы можно использовать using? Первое, что приходит в голову, это использование директивы using, которая применяется для определения или разрешения использования типов как пространств имен. Например, следующий фрагмент кода демонстрирует включение некоторых пространств имен с помощью директивы using.

using System.IO;
using System.Text;

Погодите! Это не всё! Есть нечто, называемое “директивой псевдонимов (aliasing directive)” и ее можно использовать, как показано в следующей строке кода. Это может быть промежуточной частью ответа на вопрос.

using mynamespace = myproject.module;

Теперь вернемся к оператору using, который задает область видимости, вне которой объект недоступен. Рассмотрим следующий пример:

using(ColorImageFrame imageFrame = e.OpenColorImageFrame())
{
// здесь ваш код 
}

Объект imageFrame определен с помощью блока using. Это означает, что когда выполнение блока кода завершиться, объект imageFrame больше не потребуется, и он может быть уничтоженудален. Такой подход крайне важен для эффективного управления памятью.
Tags:
Hubs:
-29
Comments 41
Comments Comments 41

Articles