IRONSOFTWAREHOME
開発者向けアップデート

C# Action(開発者向けの動作方法)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年7月19日

このチュートリアルでは、C# Action、Func デリゲート、および関連トピックのコンセプトを教えます。 このガイドは初心者向けに設計されており、基本を解説し、例を提供し、action delegateの重要な用語を説明します。

まず、C#のデリゲートとは何かを理解することから始めましょう。 記事の後半でIronPDFライブラリを探ります。

C#におけるデリゲートの理解

デリゲートは、特定のパラメーターセットと戻り値の型で定義されるメソッドへの参照として機能し、事前定義されたデリゲートタイプなどの機能をカプセル化し、メソッドが値を返すことを可能にするプログラミング構造です。

それはメソッドを引数として渡すことができます。 本質的に、デリゲートは関数ポインタとして機能し、それが表すメソッドを指します。 C#では、広く使用される2つの事前定義されたデリゲートタイプがあり、それがFuncとActionです。

Func デリゲートとは?

Funcデリゲートは、戻り値を持つことができるメソッドを表します。 最後の型パラメーターは戻り値の型を指定し、先行する型は入力パラメーターを指定します。

たとえば、**Func<int, int, string>**は2つの整数パラメーターを受け取り、文字列メッセージを返します。

実践におけるデリゲート: 例

C#においてFuncおよびActionデリゲートがどのように機能するかを理解するために、いくつかの例を見てみましょう。

Action デリゲートの例

値を具体的に返さないメソッドの実行を希望する場合、操作に焦点を当てた事前定義のデリゲートタイプであるActionデリゲートが使用されます。 ここに基本的な例があります:

Action<string> display = message => Console.WriteLine(message);
display("Hello, World!");

このコードは、1つの文字列パラメーターを取り、それをコンソールに出力する匿名メソッドを用いたActionデリゲートの使用を示しています。 **=>**シンボルは、無名メソッドを書くための簡潔な方法であるラムダ式を定義するために使用されます。

Func デリゲートの例

値を返すFuncデリゲートは次のように使用することができます:

Func<int, int, int> add = (x, y) => x + y;
int result = add(5, 3);
Console.WriteLine(result);

この例では、2つの整数パラメーターを取り、その合計を返すFuncデリゲートを作成します。 合計はこのようにコンソールに表示されます:

C# アクション (開発者向けの動作説明): 図 1

主要概念

無名メソッド

C#における無名メソッドは、名前なしでインラインメソッドを定義する方法を提供します。 しばしばデリゲートと共に使用され、直接デリゲートインスタンスを作成します。

ラムダ式

ラムダ式は無名メソッドを書くための省略形です。 同じ結果を達成しつつ、少ないコードを書くことができます。

ジェネリックデリゲート

ジェネリックデリゲートはどんなデータ型でも扱うことができます。 FuncとActionはジェネリックデリゲートの例で、実行時に入出力タイプを指定することにより、より多くの柔軟性を提供します。

デリゲートインスタンス

newキーワードでまたは単にデリゲートのシグネチャに一致するメソッドを割り当てることでデリゲートインスタンスを作成します。

System 名前空間

.NETにおけるSystem名前空間には、FuncやActionのような組み込み型が含まれており、これらは基底クラスライブラリの一部です。

デリゲートを使用した非同期プログラミング

デリゲートは、ActionやFuncを含め、C#における非同期タスクの管理において重要な役割を果たします。 デベロッパーが非同期に実行できるメソッドへの参照をカプセル化することを可能にします。 これは、メインのアプリケーションスレッドがタスクを開始した後、タスク完了まで他の作業を続けることを意味します。

その時点で、デリゲートによって参照されるコールバックメソッドが呼び出され、結果の処理を行います。 このパターンは、長時間実行される操作中にインタラクティブな状態を保つために、応答性の高いユーザーインターフェイスを作成するために重要です。

例: 非同期ファイル処理

大きなファイルを処理する必要があるアプリケーションを考えてみましょう。非同期プログラミングパターンであるTaskのようなものと組み合わせたActionデリゲートの使用は、アプリケーションのパフォーマンスを大幅に向上させることができます。

public async Task ProcessFileAsync(string filePath, Action<string> onComplete)
{
    // Asynchronously read file content
    string fileContent = await File.ReadAllTextAsync(filePath);
    // Process the file content here (omitted for brevity)
    
    // Once processing is complete, invoke the onComplete callback
    onComplete?.Invoke("File processing completed successfully.");
}

この例では、File.ReadAllTextAsyncを使用して、メインスレッドをブロックせずにファイルの内容を読み取ります。 ファイルが処理されたら、onCompleteというActionデリゲートが呼び出され、UIの更新や結果の記録などのさらなるアクションが可能になります。

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

IronPDFは、.NET開発者向けにPDFを作成・編集・操作する包括的なC#ライブラリです。 それは拡張された機能で、HTMLコンテンツ、CSS、JavaScript、および画像からピクセル完璧なPDFを保証し、Chromeベースのレンダリングエンジンで差別化されています。

IronPDFは、Windows、Linux、およびmacOSプラットフォーム全体で、.NET Standard、.NET Framework、.NET Coreを含むさまざまな.NETフレームワークおよび環境と互換性があります。

IronPDFのインストール

あなた for .NETプロジェクトにIronPDFを組み込むには、最も簡単な方法であるNuGetを使用することができます。 Visual Studioのパッケージマネージャーコンソールを開き、次のコマンドを実行するだけです。

PM > Install-Package IronPdf

このコマンドはIronPDFパッケージを取得しインストールし、PDFの生成と操作のためにIronPDFの使用を開始するためにプロジェクトを設定します。

Action デリゲートを用いたコード例

IronPDFを使用したActionデリゲートを用い、PDF生成タスクを実行するシンプルな例です。

using IronPdf;
using System;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        
        // Define an Action delegate that takes HTML content as a string
        Action<string> generatePdf = html =>
        {
            // Render the HTML as a PDF
            var pdf = renderer.RenderHtmlAsPdf(html);
            
            // Save the PDF to a file
            pdf.SaveAs("example.pdf");
        };
        
        // Generate the PDF with the provided HTML
        generatePdf("<p>Hello, world!</p>");
        Console.WriteLine("PDF generated successfully.");
    }
}

この例はHTML文字列を取り、それをPDFドキュメントにレンダリングするためにIronPDFを利用するActionデリゲートを定義します。 生成されたPDFはファイルシステムに保存されます。 このアプローチは、デリゲートを使用してPDF生成ロジックをカプセル化し、コードをよりモジュラーで柔軟にする方法を示しています。

C# アクション (開発者向けの動作説明): 図 2

ライセンス

IronPDFは開発者向けに、個別開発者ライセンスからエンタープライズ契約まで、様々なライセンシングオプションを提供しています。 これらのライセンスの価格は$999から始まります。

結論

これで、C#におけるActionおよびFuncデリゲート、無名メソッドおよびラムダ式の使い方について基本的な理解が得られたはずです。 デリゲートの概念を習得するには、練習が重要です。自身の例を作成し、デリゲートを定義し、割り当て、呼び出すことを試みてください。

IronPDFの機能は試用版で自由に探求することができます。 プロジェクトの要件に合う場合は、価格が$999から始まるライセンスを取得できます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から