C# 사용 문

C Sayong Mun



데이터베이스 연결, 문서 스트림 또는 네트워크 연결과 같은 리소스를 폐기할 때 적절한 폐기를 보장하기 위해 C# 언어의 'using' 문이 사용됩니다. 이 접근 방식을 사용하면 IDisposable 인터페이스를 준수하는 개체 관리가 더 간단해집니다. 리소스가 생성되고 활용되는 코드 섹션은 'using' 문이 선언될 때 생성됩니다. 정상적인 처리 또는 예외를 사용하여 블록을 종료하는 경우 개체의 Dispose() 함수가 즉시 호출되어 제어되지 않은 리소스를 해제하고 필요한 정리를 수행합니다. 이 가이드에서는 C# 'using' 문을 사용하여 문서 스트림 리소스를 다룹니다.

통사론:

C# 'using' 문은 편리하고 안전하게 명시적으로 폐기해야 하는 리소스를 관리하는 데 사용됩니다. 다음과 같은 특정 구문을 따릅니다.

사용하여 ( 리소스 유형 리소스 = 새로운 자원 유형 ( ) ) { // 코드 }
  • 'using' 키워드는 'using' 문을 선언하는 데 사용됩니다.
  • 'using' 키워드 뒤에는 작업하려는 리소스 유형을 지정하고 그 뒤에 블록 내 리소스를 나타내는 변수 이름을 지정합니다. IDisposable 인터페이스를 수행하는 모든 개체가 적합합니다. 필요에 따라 블록 내의 리소스에 대해 작업을 수행할 수 있습니다.
  • 다음으로 등호(=)를 사용하여 리소스 유형의 새 인스턴스를 변수에 할당합니다.
  • 여기서는 'new' 키워드를 사용하여 리소스 유형의 새 개체를 생성합니다.
  • new 키워드 뒤의 괄호 안에서 추가 초기화 또는 구성을 수행할 수 있습니다.
  • 마지막으로, 리소스를 사용하는 코드를 중괄호 {}로 묶습니다.

예시 1:

이 기사에서 C# 'using' 문을 활용하는 방법을 보여주기 위해 C# 코드 예제부터 시작하겠습니다. 주어진 코드는 'using' 문 내에서 'StreamReader' 클래스를 사용하여 텍스트 파일의 내용을 읽는 C# 프로그램을 다룹니다.







프로그램은 입력/출력 작업 및 파일 처리를 위한 클래스를 제공하는 필수 네임스페이스인 System 및 System.IO를 가져오는 것으로 시작됩니다. 프로그램은 'Dummy'라는 클래스를 정의합니다. 'Dummy' 클래스 내부에는 처음부터 끝까지 전체 프로그램을 실행하기 위해 항상 C# 프로그램의 항목으로 처리되어야 하는 Main() 메서드가 있습니다.



Main() 메서드는 'fp' 문자열 변수를 선언하고 'test.txt' 값을 할당하는 것으로 시작됩니다. 읽을 텍스트 파일의 파일 경로를 나타냅니다. 파일을 읽을 때 발생할 수 있는 모든 오류에 대처하기 위해 try-catch 블록이 활용됩니다.



try 블록 내에서 'using' 문은 'StreamReader' 클래스의 인스턴스를 만드는 데 사용됩니다. 파일의 내용을 이해하는 작업은 'StreamReader'에 속합니다. 'fp' 변수에 저장된 파일 경로는 'StreamReader' 생성자에 전달되어 읽을 파일을 나타냅니다.





'using' 블록 내에서는 문서의 마지막 줄이 나타나지 않는 한 'while' 루프를 사용하여 파일 내용을 한 줄씩 검사합니다. 루프는 'StreamReader'의 ReadLine() 메서드를 사용하여 한 줄을 읽고 이를 문자열 변수 'l'에 할당합니다. 행이 null이 아니면 Console.WriteLine(l)을 사용하여 콘솔에 인쇄됩니다.

파일 끝에 도달하고 더 이상 읽을 줄이 없으면 'using' 블록이 종료되고 'StreamReader' 개체는 'using' 문으로 인해 자동으로 삭제됩니다. 문서를 읽는 동안 IOException이 발생할 때마다 catch 블록이 활성화됩니다. e.Message를 사용하여 예외 메시지를 가져오고 Console.WriteLine()을 사용하여 콘솔에 오류 메시지가 표시됩니다.



프로그램 실행이 완료되고 콘솔 출력이 표시됩니다. 'test.txt' 파일이 존재하고 여러 줄의 텍스트를 포함한다고 가정하면, 이 코드의 출력은 다음 첨부된 이미지와 같이 콘솔에 인쇄되는 파일의 내용입니다. 모든 줄은 출력에 별도로 표시됩니다.

시스템 사용 ;

시스템을 사용합니다. IO ;

클래스 더미 {

공전 무효의 기본 ( ) {

문자열 fp = '테스트.txt' ;

노력하다 {

사용하여 ( StreamReader 리더 = 새로운 StreamReader ( fp ) )

{

문자열 l ;

~하는 동안 ( ( = 리더. ReadLine ( ) ) != 없는 )

{

콘솔. WriteLine ( ) ;

}

}

}

잡다 ( IO예외e ) {

콘솔. WriteLine ( '문제 발생: ' + 그것은. 메시지 ) ;

}

}

}

메모: 'test.txt' 파일이 없거나 파일 액세스 또는 읽기에 문제가 있는 경우 catch 블록이 실행되고 발생한 특정 예외를 나타내는 오류 메시지가 콘솔에 표시됩니다.

예 2:

다음은 데이터를 파일에 쓰기 위해 StreamWriter와 함께 C# 'using' 문을 사용하는 방법을 보여주는 또 다른 간단한 예입니다. 다음은 예상되는 출력과 함께 코드에 대한 설명입니다. 코드는 'Dummy' 클래스 선언과 프로그램을 시작하고 종료하는 'Main' 메서드로 시작됩니다.

'Main' 메서드 내에서 'fp' 문자열 변수가 'test.txt' 파일 경로로 선언되고 초기화됩니다. 정보가 기록된 문서는 이것으로 표시됩니다. 문서 작성 프로세스 전반에 걸쳐 발생할 수 있는 IOException을 처리하기 위해 프로그램은 try-catch 블록에 포함됩니다.

try 블록 내에서 'writer'라는 StreamWriter 개체가 생성되고 'using' 문을 사용하여 초기화됩니다. StreamWriter는 파일에 문자를 쓰는 일을 담당합니다. 작성기 개체의 WriteLine 함수를 통해 'using' 섹션 내부의 문서에 별도의 두 줄의 콘텐츠가 추가됩니다. 블록이 종료되면 StreamWriter의 Dispose() 메서드가 자동으로 호출되어 보류 중인 데이터가 파일에 기록되고 필요한 리소스가 해제됩니다.

마지막으로, “using” 블록 외부에는 “Data Write 성공적으로 작성되었습니다.”가 있습니다. 문서의 쓰기 작업이 성공했고 오류가 없음을 보여주는 메시지가 콘솔에 표시됩니다. 문서 쓰기 프로세스 중에 IOException이 발생하면 catch 블록이 활성화됩니다. 이 경우 특정 예외 메시지와 함께 오류 메시지가 콘솔에 표시됩니다.

시스템 사용 ;

시스템을 사용합니다. IO ;

클래스 더미 {

공전 무효의 기본 ( ) {

문자열 fp = '테스트.txt' ;

노력하다 {

사용하여 ( StreamWriter 작가 = 새로운 StreamWriter ( fp ) )

{

작가. WriteLine ( '안녕하세요, 씨샤프!' ) ;

작가. WriteLine ( '이것은 테스트 텍스트입니다.' ) ;

}

콘솔. WriteLine ( '데이터가 성공적으로 기록되었습니다.' ) ;

}

잡다 ( IO예외e ) {

콘솔. 쓰기라인 ( '오류가 발생했습니다: ' + 그것은. 메시지 ) ;

}

}

}

요약하면, 코드는 'using' 문을 사용하여 StreamWriter 개체를 만들고 파일에 두 줄의 텍스트를 쓴 다음 자동으로 StreamWriter를 삭제합니다. 쓰기 작업이 성공하면 소프트웨어는 성공 메시지를 생성합니다. 그렇지 않은 경우 IOException이 발생하면 실패 메시지를 내보냅니다.

결론

C# 'using' 문은 명시적인 폐기가 필요한 리소스를 관리하는 실용적이고 안전한 방법을 제공합니다. 필요한 정리 절차가 자동으로 수행되도록 보장하고 리소스 소비를 '사용' 블록 내에 포함시켜 리소스 누수 가능성을 줄일 수 있습니다. 이렇게 하면 코드의 신뢰성이 높아집니다.