프로그램/C# - Study / / 2010. 10. 13. 15:18

C# - Ex27Resource

반응형


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Ex27Resource
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamWriter writer = new StreamWriter("test.txt");
            writer.Dispose();  // writer.Close()가 호출된다

            ResourceManager rm = new ResourceManager();
            rm.AllocateResource();
            rm.UseResource();
            rm.Dispose();

            Console.ReadLine();
        }
    }
    class ResourceManager : IDisposable  // IDisposable 가 자원을 해제
    {
        private StreamWriter writer = null;
        public void AllocateResource()
        {
            writer = new StreamWriter("test.txt");
            Console.WriteLine("비관리형 리소스가 할당 되었습니다.");
        }
        public void UseResource()
        {
            writer.WriteLine("Test Message");
        }
        //소멸자 : 객체 소멸시에 자동으로 호출 (Finalize()로 컴파일)
        ~ResourceManager()
        {
            Console.WriteLine("비관리형 리소스가 해제 되었습니다.(Finalize)");
        }
        public void Dispose()
        {
            Console.WriteLine("비관리형 리소스가 해제 되었습니다.(Dispose)");
            GC.SuppressFinalize(this); //Finalize호출 금지
        }
    }
}


Ex01 ~ Ex27 코딩 파일

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유