Синтаксис:
Оператор «using» в C# используется для удобного и безопасного управления ресурсами, которые необходимо явно удалить. Он следует определенному синтаксису:
с использованием ( РесурсРесурсТипРесурс '=' новый тип ресурса ( ) ) { // Код }- Ключевое слово «using» используется для объявления оператора «using».
- После ключевого слова «using» вы указываете тип ресурса, с которым хотите работать, а затем имя переменной, представляющей ресурс внутри блока. Подпадает любой объект, который реализует интерфейс IDisposable. Вы можете работать с ресурсом внутри блока по мере необходимости.
- Далее знак равенства (=) используется для присвоения переменной нового экземпляра типа ресурса.
- Здесь ключевое слово «new» используется для создания нового объекта типа ресурса.
- Любую дополнительную инициализацию или настройку можно выполнить в круглых скобках после нового ключевого слова.
- Наконец, вы заключаете код, использующий ресурс, в фигурные скобки {}.
Пример 1:
Начнем с примеров кода C#, чтобы продемонстрировать использование оператора using в C# в этой статье. Приведенный код охватывает программу C#, которая считывает содержимое текстового файла с использованием класса «StreamReader» внутри оператора «using».
Программа начинается с импорта необходимых пространств имен System и System.IO, которые предоставляют классы для операций ввода-вывода и обработки файлов. В программе определяется класс под названием «Dummy». Внутри класса «Dummy» есть метод Main(), который всегда следует рассматривать как запись для любой программы C# для выполнения всей программы от начала до конца.
Метод Main() начинается с объявления строковой переменной «fp» и присвоения ей значения «test.txt». Это представляет путь к текстовому файлу, который нужно прочитать. Чтобы справиться со всеми возможными ошибками, которые могут возникнуть при чтении файлов, используется блок try-catch.
В блоке try оператор using используется для создания экземпляра класса StreamReader. Задача понимания содержимого файла ложится на «StreamReader». Путь к файлу, хранящийся в переменной «fp», передается конструктору «StreamReader», указывая файл, который нужно прочитать.
Внутри блока «using» содержимое файла проверяется построчно с использованием цикла «пока», пока не появится последняя строка документа. Цикл считывает строку, используя метод ReadLine() объекта «StreamReader», и присваивает ее строковой переменной «l». Если строка не равна нулю, она выводится на консоль с помощью Console.WriteLine(l).
Как только конец файла достигнут и больше нет строк для чтения, блок «using» завершается, и объект «StreamReader» автоматически удаляется из-за оператора «using». Блок catch активируется всякий раз, когда при чтении документа возникает исключение IOException. Сообщение об исключении получается с помощью e.Message, а сообщение об ошибке отображается на консоли с помощью Console.WriteLine().
Выполнение программы завершается и отображается вывод консоли. Предполагая, что файл «test.txt» существует и содержит несколько строк текста, выходные данные этого кода — это содержимое файла, которое выводится на консоль, как показано на следующем прикрепленном изображении. Каждая строка отображается отдельно в выводе:
используя систему ;с помощью системы. ИО ;
класс Манекен {
статический пустота Основной ( ) {
строка fp '=' 'тест.txt' ;
пытаться {
с использованием ( Читатель StreamReader '=' новый StreamReader ( фп ) )
{
строка л ;
пока ( ( л '=' читатель. ЧитатьЛайну ( ) ) '=' нулевой )
{
Консоль. WriteLine ( л ) ;
}
}
}
ловить ( IOException e ) {
Консоль. WriteLine ( 'Произошла ошибка: ' + Это. Сообщение ) ;
}
}
}
Примечание: Если файл «test.txt» не существует или возникает проблема с доступом к файлу или его чтением, выполняется блок catch, и на консоли отображается сообщение об ошибке, указывающее на произошедшее конкретное исключение.
Пример 2:
Вот еще один простой пример, демонстрирующий использование оператора using C# со StreamWriter для записи данных в файл. Вот объяснение кода и его ожидаемый результат. Код начинается с объявления класса «Dummy» и метода «Main», который в конечном итоге запускает и завершает программу.
В методе Main объявляется строковая переменная «fp» и инициализируется путем к файлу «test.txt». Документ, на котором записана информация, представлен этим. Чтобы справиться с любым возможным исключением IOException, которое может возникнуть в процессе написания документа, программа заключена в блок try-catch.
Внутри блока try создается объект StreamWriter с именем «писатель» и инициализируется с помощью оператора «using». StreamWriter отвечает за запись символов в файл. Две отдельные строки содержимого добавляются в документ внутри раздела «using» с помощью функции WriteLine объекта записи. После выхода из блока автоматически вызывается метод Dispose() StreamWriter, который гарантирует запись всех ожидающих данных в файл и освобождение необходимых ресурсов.
Наконец, за пределами блока «Использование» отображается надпись «Данные записаны успешно». На консоли отображается сообщение, которое демонстрирует, что операция записи документа прошла успешно и без ошибок. Блок catch активируется, если в процессе записи документа возникает какое-либо исключение IOException. В этом случае на консоли отображается сообщение об ошибке вместе с конкретным сообщением об исключении.
используя систему ;с помощью системы. ИО ;
класс Манекен {
статический пустота Основной ( ) {
строка fp '=' 'тест.txt' ;
пытаться {
с использованием ( StreamWriter писатель '=' новый StreamWriter ( фп ) )
{
писатель. WriteLine ( «Привет, Си-диез!» ) ;
писатель. WriteLine ( «Это тестовый текст». ) ;
}
Консоль. WriteLine ( «Данные записаны успешно». ) ;
}
ловить ( IOException e ) {
Консоль. WriteLine ( 'Возникла ошибка: ' + Это. Сообщение ) ;
}
}
}
Короче говоря, код создает объект StreamWriter с помощью оператора using, записывает две строки текста в файл, а затем автоматически удаляет StreamWriter. Если операция записи успешна, программное обеспечение генерирует сообщение об успехе. В противном случае он выдает сообщение об ошибке, если возникает какое-либо исключение IOException.
Заключение
Оператор using в C# предлагает практичный и безопасный метод управления ресурсами, требующими явного удаления. Вы можете гарантировать, что необходимые процедуры очистки будут выполняться автоматически, и снизить вероятность утечек ресурсов, заключая потребление ресурсов в блок «использование». Это повышает надежность вашего кода.