본문 바로가기
개발언어/C#

[C#] 어떠한 경우에도 파일닫기 using, IDisposable

by 창용이랑 2023. 5. 17.
728x90

어떠한 경우에도 파일을 닫아야 한다면 IDisposable인터페이스와 using문을 사용하는것이 기본이다.

 

using System;
using System.IO;

class CFile : IDisposable
{
	private TextWriter writer = null;
	
	public void Create()
	{
		writer = File.CreateText("Sample.txt");
	}
	
	public void Close()
	{
		Dispose();
	}
	
	public void Write()
	{
		throw new ApplicationException("sample Exception");
	}
	
	//무조건 실행됨
	public void Dispose()
	{
		if(writer != null) writer.Close();
	}
}

Class Program
{
	static void Main(string[] args)
	{
		try
		{
			using(var cfile = new CFile())
			{
				cfile.Create();
				cfile.Write();
			}	//using이 끝날때 Dispose()가 무조건 실행됨
		}
		catch(Exception e)
		{
			Console.WriteLine(e);
		}
	}
}