.NET ヘルプ

C# `Using`ステートメント(開発者向けの使用方法)

更新済み 4月 3, 2024
共有:

について using ステートメント C#におけるこの概念は、特に破棄可能なオブジェクトを扱う際に、リソースを効率的に管理するための基本的な概念です。 このチュートリアルでは、using ステートメントが何であるか、その仕組み、そして特にC#初心者にとってなぜ有益であるかを詳しく解説します。

このガイドの終わりまでには、より良いリソース管理と、よりクリーンで読みやすいコードのために、このステートメントをコードに実装する方法についての確固たる理解が得られるでしょう。 また、議論いたします IronPDF この記事の後半で、usingステートメントと一緒にどのように使用できるかについて説明します。

破棄可能なオブジェクトとIDisposableインターフェイスの理解

using ステートメントに進む前に、ディスポーザブルオブジェクトと IDisposable インターフェースを理解することが重要です。 .NETでは、ファイルハンドル、ネットワーク接続、データベース接続などの多くのリソースは、ガベージコレクタによって管理されていません。

そのようなリソースは、アンマネージドリソースと呼ばれます。 これらのリソースを適切に管理するために、それらをカプセル化するクラスは、単一のメソッドDisposeを含むIDisposableインターフェースを実装します。 このメソッドは、不要になった際に非管理リソースを手動で解放するために呼び出されます。

使用ステートメントの基本

構文と使用法

using ステートメントは、管理されていないリソースを解放するプロセスを簡素化します。 それは、破棄可能なオブジェクトがスコープ外になるとすぐにDisposeメソッドが呼び出されることを保証します。

using ブロックを、安全ゾーンと考えてください。これにより、リソースが使用後に自動的にクリーンアップされることが保証されます。 使用例を示す基本的な例を以下に示します。

using (StreamReader reader = new StreamReader("file.txt"))
{
    // You can read the file here
}
using (StreamReader reader = new StreamReader("file.txt"))
{
    // You can read the file here
}
Using reader As New StreamReader("file.txt")
	' You can read the file here
End Using
VB   C#

上記の例では、StreamReaderIDisposableインターフェースを実装するクラスです。 using ステートメントは、制御が中括弧で定義されたスコープから出るときに、readerDispose メソッドが自動的に呼び出されることを保証します。

動作方法

ディスポーザブルオブジェクトを using ステートメントでラップする場合、それは本質的に try ブロックと finally ブロックに変換されます。 finally ブロックでは、例外が発生した場合でもリソースが適切に解放されるように、Dispose メソッドが呼び出されます。

using ブロック内のコードがエラーを投げる場合でも心配しないでください。 Disposeメソッドは引き続き呼び出され、リソースが安全に解放されることを保証します。

Using ステートメントの高度な概念

複数のリソースの管理

単一の using ステートメント内で複数のディスポーザブルオブジェクトを管理することができます。 このアプローチは、コードをよりクリーンに保ち、すべてのリソースが正しく解放されることを保証します。

using (SqlConnection conn = new SqlConnection(connString))
using (SqlCommand cmd = new SqlCommand(query, conn))
{
    // Work with your database here
}
using (SqlConnection conn = new SqlConnection(connString))
using (SqlCommand cmd = new SqlCommand(query, conn))
{
    // Work with your database here
}
Using conn As New SqlConnection(connString)
Using cmd As New SqlCommand(query, conn)
	' Work with your database here
End Using
End Using
VB   C#

エイリアス指示の使用

コア機能であるusingステートメントに加えて、C#はusingエイリアスディレクティブやusingブロック内でのローカル変数の効率的な処理などの機能も提供しており、リソース管理をさらに簡素化し、コードの可読性を向上させます。

外部ライブラリを使用したりクラス名の競合に対処したりする場合、コードが乱雑になり、追跡が困難になることがあります。 usingエイリアス指示 は、名前空間やクラスにより読みやすい、または短いエイリアスを割り当てることを可能にすることで助けになります。

異なる名前空間に存在するが同じ名前を持つ2つのクラスを扱うシナリオを考えてみましょう。 簡単に区別するために using 別名指示文を使用できます:

using Project = FirstNamespace.Project;
using ExternalProject = SecondNamespace.Project;
// Now you can use Project and ExternalProject in your code to refer to the specific classes without confusion.
using Project = FirstNamespace.Project;
using ExternalProject = SecondNamespace.Project;
// Now you can use Project and ExternalProject in your code to refer to the specific classes without confusion.
Imports Project = FirstNamespace.Project
Imports ExternalProject = SecondNamespace.Project
' Now you can use Project and ExternalProject in your code to refer to the specific classes without confusion.
VB   C#

使用宣言

C# 8.0 で導入された using 宣言は、コードをさらに簡潔にするためのシンタックスシュガーです。廃棄可能なオブジェクトを中括弧で囲む代わりに、宣言だけで済ませ、宣言されたスコープの終わりで自動的に廃棄されます。

using StreamReader reader = new StreamReader("file.txt");
// Use reader here
// It will be disposed of here automatically
using StreamReader reader = new StreamReader("file.txt");
// Use reader here
// It will be disposed of here automatically
Using reader As New StreamReader("file.txt")
	' Use reader here
	' It will be disposed of here automatically
End Using
VB   C#

カスタムクラスとIDisposable

カスタムクラスにIDisposableインターフェースを実装することにより、usingステートメントを適用することもできます。 これは、クラスが一つ以上のリソースを管理する責任を負う場合に特に役立ちます。

public class ResourceHolder : IDisposable
{
    public void Dispose()
    {
        // Release your resources here
    }
}
public class ResourceHolder : IDisposable
{
    public void Dispose()
    {
        // Release your resources here
    }
}
Public Class ResourceHolder
	Implements IDisposable

	Public Sub Dispose() Implements IDisposable.Dispose
		' Release your resources here
	End Sub
End Class
VB   C#

あなたのクラスが IDisposable インターフェースを実装している場合、他の破棄可能なオブジェクトと同様に using ステートメント内で使用することができます。

IronPDFの紹介:C# PDFライブラリ

C# 使用ステートメント(開発者向けの動作方法):図1

IronPDF は、C#をコアにして設計された、.NETプラットフォーム向けの包括的なPDF生成ライブラリです。 IronPDFが PDF作成プロセス HTML、CSS、画像、およびJavaScriptを使用して効率的なPDFレンダリングが簡単にできます。

包括的なPDF操作をサポートしており、他のAPIでは複雑になりがちな作業を簡単にします。PDF作成プロセスを簡素化するだけでなく、Webアプリケーション、サーバーアプリケーション、コンソールアプリケーション、デスクトップアプリケーションなど、さまざまなアプリケーションタイプとの互換性も追加します。

IronPDFのインストール

IronPDFをプロジェクトに追加する最も効率的な方法は、NuGetパッケージマネージャーを使用することです。 Visual Studioでプロジェクトを開き、「ソリューション エクスプローラー」に移動し、「依存関係」を右クリックして、「NuGet パッケージの管理」を選択します。ここで「IronPDF」を検索し、数回クリックするだけでパッケージをインストールできます。

C# 使用文 (開発者向けの動作方法): 図2

Usingステートメントを使用したIronPDFの使用例

C#のリソース管理におけるusingステートメントに戻しましょう。 以下は、HTMLコンテンツからPDFを生成するためにIronPDFを使用する方法を示す簡単なコード例であり、リソースの適切な破棄を保証するためにusingステートメントを使用しています:

using IronPdf;
class Program
{
    static void Main(string [] args)
    {
        var renderer = new ChromePdfRenderer();
        // Generate a PDF from HTML string and save it
        using (var document = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1>"))
        {
            document.SaveAs("HelloIronPDF.pdf");
        }
        // The using statement ensures that resources are cleaned up correctly
    }
}
using IronPdf;
class Program
{
    static void Main(string [] args)
    {
        var renderer = new ChromePdfRenderer();
        // Generate a PDF from HTML string and save it
        using (var document = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1>"))
        {
            document.SaveAs("HelloIronPDF.pdf");
        }
        // The using statement ensures that resources are cleaned up correctly
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		' Generate a PDF from HTML string and save it
		Using document = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1>")
			document.SaveAs("HelloIronPDF.pdf")
		End Using
		' The using statement ensures that resources are cleaned up correctly
	End Sub
End Class
VB   C#

C# の Using ステートメント(開発者向けの機能解説):図 3

ライセンス

C# 使用文 (開発者向けの仕組み): 図4

IronPDFは、さまざまな ライセンス 開発者およびあらゆる規模の組織に柔軟性を提供できるように、チームのサイズや展開のニーズに合わせたオプションを用意しています。

ライセンスの価格は$749から始まります。 それは、 無料試用 購入前にその機能を試すため。

結論とベストプラクティス

usingステートメントは、効率的なリソース管理とクリーンなコードを保証するC#の強力な機能です。 ファイルストリーム、データベース接続、またはシステムリソースを消費するその他のローカル変数やオブジェクトを扱う際に特に有用です。

Disposeメソッドを自動的に呼び出すことで、リソースリークを防ぎ、アプリケーションがスムーズに稼働することに役立ちます。 オブジェクトが IDisposable インターフェースを実装している場合は、常に using ステートメントを使用することを忘れないでください。

IronPDFは、金銭的な義務を伴わずに製品を試すことをお勧めします 無料試用. その性能に満足された場合、ライセンスの取得は $liteLicense から始まります。

< 以前
C# TryParse(開発者向けの仕組み)
次へ >
C# レコード(開発者向けの仕組み)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >