C# using文のサンプル(インスタンスを自動で破棄)

C#のusing文のサンプルです。インスタンスを自動で破棄します。

目次

サンプル インスタンスを自動で破棄するusing文
  usingディレクティブ

インスタンスを自動で破棄するusing文

using (StreamReaderクラス等のインスタンス)
{
}
  • using文は、配下のブロック({})を抜けるときにかっこ内のインスタンスを自動で破棄します。
  • finally句でインスタンスを破棄するdisposeメソッドが不要になります。
  • 対象は、IDisposableインターフェースを実装したクラスです。
  • 以下は、Microsoftのusing ステートメントのリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-statement

using文を使用した場合

using文を使用してファイルを読み込むサンプルです。

using System;
using System.IO;
class Test1
{
	static void Main()
	{
		var path1 = @"d:\test1\test1.txt";
		try
		{
			using (StreamReader sr = new StreamReader(path1,
				System.Text.Encoding.GetEncoding("shift_jis")))
			{
				while (sr.EndOfStream == false)
				{
					Console.WriteLine(sr.ReadLine());
				}
			}
		}
		catch (Exception e)
		{
			Console.WriteLine(e.Message);
		}
	}
}

10,11行目は、using文でStreamReaderクラスでファイルを読み込んでいます。disposeメソッドが不要です。

 

using文を使用しない場合

using文を使用しないでファイルを読み込むサンプルです。

using System;
using System.IO;
class Test1
{
	static void Main()
	{
		var path1 = @"d:\test1\test1.txt";
		StreamReader file = null; 
		try
		{
			file = new StreamReader(path1, 
				System.Text.Encoding.GetEncoding("shift_jis"));
			{
				while (file.EndOfStream == false)
				{
					Console.WriteLine(file.ReadLine());
				}
			}
		}
		catch (Exception e)
		{
			Console.WriteLine(e.Message);
		}
		finally
		{
			file.Dispose();
		}
	}
}

26行目にファイルを閉じるdisposeメソッドがあります。

 

usingディレクティブ

using System;

上記1行目は、usingディレクティブです。
System.Console.WriteLineのSystemを省略するものでusing文とは異なります。

関連の記事

C# テキストファイルの読み書きのサンプル

△上に戻る