rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 9.0 - 関数ポインター

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

関数ポインター

 [ 良いリンクを見つけられませんでした ]
 関数ポインター。ポインターというからには unsafe で書く必要がある。

unsafe
{
    // delegate* で関数ポインターを格納する変数を宣言
    // &string.IsNullOrEmpty とメソッド名に & をつけることで関数のポインターを取得している
    delegate*<string, bool> f = &string.IsNullOrEmpty;
    // 普通の関数呼び出しの構文で呼べる
    Console.WriteLine(f(""));  // True
    Console.WriteLine(f("a")); // False
}