ネット投稿を読んで知ったのですが、最近のC#ではプラットフォーム呼び出し (P/Invoke)をローカル関数として書けます。ローカル関数のドキュメントには確かにextern
の記載があります。通常のローカル関数を書ける部分なら書けるので、メソッド、プロパティ、ラムダ式など様々な場所で書けます。
昔ながらのNativeMethods
よりもP/Invokeのスコープを制限できるので、可読性を損なわない範囲で使いたいと思います。
どの記事を読んだかは失念してしまったのですが、有益な情報をコード付きで分かりやすく公開くださった投稿者の方に感謝を申し上げます。