C#

C# - using문

바차 2022. 1. 24. 11:42
반응형

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/using-statement

 

using 문 - C# 참조

using 문(C# 참조) 이 문서의 내용 --> IDisposable 개체의 올바른 사용을 보장하는 편리한 구문을 제공합니다. C# 8.0부터 using 문은 IAsyncDisposable 개체의 올바른 사용을 보장합니다. 예제 다음 예제에서

docs.microsoft.com

using 문

-IDisposable 개체의 올바른 사용을 보장하는 편리한 구문을 제공

 

- 관리되지 않는 리소스에 액세스 하는 클래스들을 사용한 후에 적절한 시기에 해제하여 해당 리소스를 다시 반납해야 하지만 사람이 수동적으로 하기에는 번거로운 점이 많다.

 

- using문을 이용하면 해당 리소스 범위를 벗어나게 되면 자동으로 리소스(자원)을 해제(Dispose)하여 리소스관리를 용이하게 해주는 편리한 구문이다.

 

 

 

이전에 구현한 메모장 스크린샷 프로그램 일부이다.

using문을 사용하고 나서 dispose

//Bitmap 클래스: 그래픽 이미지의 픽셀 데이터를 저장하는 클래스. 픽셀 단위로 데이터를 저장한다.
                using (Bitmap bmp = new Bitmap(rc.Width, rc.Height, pixelFormat))
                {
                    // Bitmap 이미지 변경을 위해 Graphics 객체 생성
                    //FromImage(): 지정된 Graphics에 대한 새 Image를 반환하는 메서드
                    using (Graphics gr = Graphics.FromImage(bmp))
                    {
                        //디바이스 컨텍스트에 대한 핸들을 가져온다.
                        IntPtr dc = gr.GetHdc();


                        bool success = PrintWindow(memoHandle, dc, 0);
                        gr.ReleaseHdc(dc);
                    }
                    bmp.Save("result.bmp");
                    MessageBox.Show("스냅샷 찰영 완료");
                }
300x250