CSharp

Func<TResult>デリゲート

パラメーターを受け取らずに、TResult パラメーターに指定された型の値を返すメソッドをカプセル化します。

TResult:このデリゲートによってカプセル化されるメソッドの戻り値。

  • Func<TResult> デリゲートをインスタンス化する
  • Func<TResult> デリゲートは C# の匿名メソッドと組み合わせて使用できます。
  • Func<T, TResult> デリゲートにはラムダ式を割り当てることができます

Func 汎用デリゲートの最後のジェネリック型パラメーターは、デリゲート シグネチャの戻り値の型を指定します。 他のジェネリック型パラメーターは反変 (in キーワード) ですが、この最後のジェネリック型パラメーターは共変 (out キーワード) です。

using System;
using System.IO;

public class TestDelegate
{

   delegate bool WriteMethod();
   public static void Main()
   {
      OutputTarget output = new OutputTarget();
      //Delegate使用
      //WriteMethod methodCall = output.SendToFile;
      //Func<TResult> デリゲートをインスタンス化する
      Func<bool> methodCall = output.SendToFile;
      //匿名メソッド
      //Func<bool> methodCall = delegate() { return output.SendToFile(); };
      //ラムダ式
      //Func<bool> methodCall = () => output.SendToFile();
      if (methodCall())
         Console.WriteLine("Success!"); 
      else
         Console.WriteLine("File write operation failed.");
   }
}

public class OutputTarget
{
   public bool SendToFile()
   {
      try
      {
         string fn = Path.GetTempFileName();
         StreamWriter sw = new StreamWriter(fn);
         sw.WriteLine("Hello, World!");
         sw.Close();
         return true;
      }  
      catch
      {
         return false;
      }
   }
}


超多機能のアクセス解析が永久無料!

コメント:



(画像の文字列を入力して下さい)

CSharp

Func


トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:33:14 (1628d)

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMITȂ1~] COiq COsیI