ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
このチュートリアルでは、C# Action、Func delegate、および関連するトピックの概念について説明します。 このガイドは、初心者向けに設計されており、基本的なことを説明し、例を提供し、以下の主要な用語を説明します。アクションデリゲート.
C#のデリゲートとは何かを理解することから始めましょう。 次に進めますIronPDFライブラリ後ほどこの記事の中で述べます。
デリゲートとは、特定のパラメーターセットと戻り値の型によって定義された、メソッドへの参照として機能するプログラミング構造であり、事前定義されたデリゲートタイプのような機能をカプセル化し、メソッドが値を返すことを可能にします。
これにより、メソッドを引数として渡すことができます。 本質的には、デリゲートは関数ポインタとして機能し、それが表すメソッドを指します。 C#では、広く使用されている2つの定義済みデリゲート型があります: Func と Action です。
Func デリゲートは、戻り値を持つメソッドを表します。 最後の型パラメータは戻り値の型を指定し、それ以前の型は入力パラメータを指定します。
例えば、Func<int, int, string> は2つの整数のパラメータを取り、文字列のメッセージを返します。
以下の例を見て、C#におけるFuncとActionデリゲートの動作を理解しましょう。
アクションデリゲートは、定義済みのデリゲートタイプであり、特定の値を返すことなく、操作に焦点を当てたメソッドを実行したい場合に使用されます。 以下は基本的な例です:
Action<string> display = message => Console.WriteLine(message);
display("Hello, World!");
Action<string> display = message => Console.WriteLine(message);
display("Hello, World!");
Dim display As Action(Of String) = Sub(message) Console.WriteLine(message)
display("Hello, World!")
以下のコードは、アクションデリゲートを定義し、匿名メソッドの使用法を示しています。これは、単一の文字列パラメーターを受け取り、それをコンソールに出力します。 =>シンボルは、ラムダ式を定義するために使用されます。ラムダ式は、無名メソッドを簡潔に記述するための方法です。
戻り値を返す Func デリゲートは、次のように使用できます:
Func<int, int, int> add = (x, y) => x + y;
int result = add(5, 3);
Console.WriteLine(result);
Func<int, int, int> add = (x, y) => x + y;
int result = add(5, 3);
Console.WriteLine(result);
Dim add As Func(Of Integer, Integer, Integer) = Function(x, y) x + y
Dim result As Integer = add(5, 3)
Console.WriteLine(result)
この例では、2つの整数パラメーターを取り、それらの合計を返すFuncデリゲートを作成します。 合計はこのようにコンソールに表示されます:
C#における匿名メソッドは、名前を持たないインラインメソッドを定義する方法を提供します。 それらは、デリゲートと一緒に使用され、直接デリゲートインスタンスを作成するためにしばしば用いられます。
ラムダ式は、匿名メソッドを記述するための簡略記法です。 それらを使用することで、同じ結果を達成しながら、少ないコードで済みます。
汎用デリゲートは、任意のデータ型で動作することができます。 Func および Action は一般的なデリゲートの例であり、実行時に入力および出力の型を指定することで、より柔軟性を提供します。
デリゲートインスタンスは new キーワードを使用して作成するか、またはデリゲートのシグネチャに一致するメソッドを単純に割り当てることで作成されます。
.NETのSystem名前空間には、基礎クラスライブラリの一部であるFuncやActionのような組み込み型が含まれています。
デリゲート、特にActionおよびFuncは、C#における非同期タスクの管理に不可欠です。 開発者がメソッドへの参照をカプセル化し、それを非同期に実行できるようにします。 これは、メインアプリケーションスレッドがタスクを開始し、そのタスクが完了するまで他の作業を続けることができることを意味します。
その時点で、デリゲートによって参照されるコールバックメソッドが呼び出され、結果を処理します。 このパターンは、長時間実行される操作を行っている間も対話性を保つ応答性の高いユーザーインターフェイスを作成するために重要です。
大きなファイルを処理する必要があるアプリケーションを考えてみましょう。Action デリゲートを使用し、Task のような非同期プログラミングパターンと組み合わせることで、アプリケーションのパフォーマンスを大幅に向上させることができます。
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.");
}
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.");
}
Public Async Function ProcessFileAsync(ByVal filePath As String, ByVal onComplete As Action(Of String)) As Task
' Asynchronously read file content
Dim fileContent As String = Await File.ReadAllTextAsync(filePath)
' Process the file content here (omitted for brevity)
' Once processing is complete, invoke the onComplete callback
If onComplete IsNot Nothing Then
onComplete.Invoke("File processing completed successfully.")
End If
End Function
この例では、File.ReadAllTextAsync を使用して、メインスレッドをブロックせずにファイルの内容を読み取ります。 ファイルが処理されると、onCompleteという名前のActionデリゲートが呼び出され、呼び出し元に操作が完了したことを通知し、UIの更新や結果のログ記録などのさらなるアクションを許可します。
IronPDF.NET開発者が簡単にPDFファイルを作成、編集、および操作できるように設計された包括的なC# PDFライブラリです。 それはChromeベースのレンダリングエンジンを備えており、HTMLコンテンツからピクセルパーフェクトなPDFを作成, CSS、JavaScript、および画像。
IronPDFは、Windows、Linux、macOSプラットフォーム全体で、.NET Standard、.NET Framework、および.NET Coreを含む幅広い.NETフレームワークおよび環境に対応しています。
IronPDFを.NETプロジェクトに組み込むには、最も簡単な方法としてNuGetを使用できます。 Visual Studioでパッケージマネージャーコンソールを開き、次のコマンドを実行します:
Install-Package IronPdf
このコマンドは IronPDF パッケージを取得してインストールし、プロジェクトを設定して IronPDF を使用したPDF生成および操作を開始します。
以下は、Actionデリゲートと組み合わせてIronPDFを使用し、PDF生成タスクを実行する方法を示す簡単な例です:
using IronPdf;
using System;
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
Action<string> generatePdf = html =>
{
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("example.pdf");
};
generatePdf("<p>Hello, world!</p>");
Console.WriteLine("PDF generated successfully.");
}
}
using IronPdf;
using System;
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
Action<string> generatePdf = html =>
{
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("example.pdf");
};
generatePdf("<p>Hello, world!</p>");
Console.WriteLine("PDF generated successfully.");
}
}
Imports IronPdf
Imports System
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
Dim generatePdf As Action(Of String) = Sub(html)
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("example.pdf")
End Sub
generatePdf("<p>Hello, world!</p>")
Console.WriteLine("PDF generated successfully.")
End Sub
End Class
この例では、HTML文字列を受け取り、IronPDFを使用してPDFドキュメントに変換するActionデリゲートを定義しています。
生成されたPDFは、その後ファイルシステムに保存されます。 このアプローチは、デリゲートを使用してPDF生成ロジックをカプセル化し、コードをよりモジュール化し柔軟にする方法を示しています。
IronPDFは様々な開発者向けライセンスオプション以下の内容を日本語に翻訳します:
, 個人開発者ライセンスから企業契約まで。 これらのライセンスの価格は $749 からです。
これまでに、C#におけるActionデリゲートとFuncデリゲートの基本的な理解、及び匿名メソッドやラムダ式の使用方法について理解しているはずです。 覚えておいてください、デリゲートの概念をマスターするには練習が重要です。自分の例を作成して、デリゲートを定義し、割り当て、呼び出す練習をしてみてください。
IronPDFの機能を自由に探索できます無料試用版. プロジェクトの要件に適している場合は、価格が$749から始まるライセンスを取得することができます。
9つの .NET API製品 オフィス文書用