C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のActionデリゲートとは?宣言方法と使い方を実例付きで解説

Actionデリゲートの基本

C#におけるActionデリゲートは、戻り値を持たないメソッド(void型のメソッド)を参照するために使用される組み込みデリゲートです。Funcデリゲートと異なり、値を返さない処理に特化しているため、コンソールへの出力やログ記録など、単に処理を実行するだけのメソッドを扱う際に便利です。

また、Actionデリゲートは最大16個までの引数を受け取ることができます。例えば Action<int> はint型の引数を1つ受け取るメソッドを表します。

Actionデリゲートの宣言方法

Actionデリゲートは以下のように宣言します。

Action<int> del = Display;

この例では、int型の引数を1つ受け取る「Display」というメソッドをActionデリゲートに割り当てています。

割り当てる側のメソッド

デリゲートに割り当てられるメソッドは、戻り値がvoidである必要があります。

public static void Display(int val) {
    Console.WriteLine(val);
}

このメソッドは引数として受け取った値をコンソールに出力するだけのシンプルなvoidメソッドです。

完全なサンプルコード

以下は、Actionデリゲートを使ってメソッドを呼び出す完全なプログラム例です。

using System;
public class Demo {
    public static void Main() {
        Action<int> del = Display;
        del(2);
    }

    public static void Display(int val) {
        Console.WriteLine(val);
    }
}

このコードでは、Main メソッド内でActionデリゲート変数 delDisplay メソッドを代入し、del(2) という形式で値「2」を渡して呼び出しています。

実行結果

2

実行すると、引数として渡した値「2」がコンソールに出力されます。

まとめ

  • Actionデリゲートは戻り値なし(void)のメソッドを参照するためのデリゲート
  • 最大16個までの引数を指定可能(例: Action<int>Action<string, int> など)
  • 匿名メソッドやラムダ式との組み合わせにも対応しており、柔軟なコードが書ける

戻り値が必要な場合はFuncデリゲートを使用し、不要な場合はActionデリゲートを使い分けることで、より読みやすく保守性の高いC#コードを書くことができます。

  1. 【解決済み】javascript:void(0)エラーの原因と対処法を徹底解説

    パソコンでインターネットを閲覧していると、「javascript:void(0)」というエラーに遭遇することがあります。致命的なエラーではありませんが、頻繁に表示されると非常に煩わしいものです。このエラーが出る場合、多くはブラウザ側に何らかの問題が発生しており、その結果として特定のウェブサイトへアクセスできなくなっています。興味深いことに、このエラーはすべてのサイトではなく、一部のサイトにアクセスしたときにのみ表示される点です。根本的な原因としては、ブラウザに組み込まれているポップアップブロッカーが考えられます。また、プロキシサーバー経由でインターネットに接続している場合にも、このエラーが発生

  2. RediSearchを実践しよう:Azure Cache for RedisとGoで作るリアルタイムツイート検索アプリ

    Redisは、シンプルなStringから強力な抽象化であるRedis Streamsまで、多彩なデータ構造を備えています。ネイティブなデータ型だけでも多くの用途に対応できますが、特定のユースケースでは追加の工夫が必要になることがあります。その代表例がセカンダリインデックス(二次インデックス)の活用です。キーによる検索・参照にとどまらず、より高度なクエリ機能を実現したい場合には、セカンダリインデックスが求められます。Sorted SetやListなどを駆使して実現することも可能ですが、いくつかのトレードオフを考慮する必要があります。そこで登場するのがRediSearchです。Redisモジュール