同じ質問で昔以下の回答がありましたが、今はライブラリが進歩しているようなので、より新しい構文を使った書き方がありましたら、是非ご教授いただければと思います。
delegate bool Execute( string oprand );
class Entry {
static bool aaa(string op)
{ System.Console.WriteLine("aaa "+op); return true; }
static bool bbb(string op)
{ System.Console.WriteLine("bbb "+op); return true; }
static bool ccc(string op)
{ System.Console.WriteLine("ccc "+op); return true; }
static public void Main() {
System.Collections.Generic.Dictionary<string,Execute> map =
new System.Collections.Generic.Dictionary<string,Execute>();
map["AAA"] = aaa;
map["BBB"] = bbb;
map["CCC"] = ccc;
map["BBB"]("argument");
}
}
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
汎用デリゲートを使う (Action系やFunc系),コレクション初期化子など,2008で追加された機能を使って書き換える程度でしょうか。
class Entry
{
static bool aaa (string op) { System.Console.WriteLine("aaa " + op); return true; }
static bool bbb (string op) { System.Console.WriteLine("bbb " + op); return true; }
static bool ccc (string op) { System.Console.WriteLine("ccc " + op); return true; }
static public void Main ()
{
var map = new System.Collections.Generic.Dictionary<string, Func<string, bool>> // varによるコンパイル時型推論,Func汎用デリゲート
{ // コレクション初期化子
{ "aaa", aaa },
{ "bbb", bbb },
{ "ccc", ccc },
};
map["bbb"]("argument");
}
}
お礼が遅くなりました。
汎用デリゲート、コレクション初期化子、varによるコンパイル時型推論ですね。
役に立ちました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java java final 1 2022/06/10 22:49
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マルチスレッドで同時にFTPアッ...
-
Javaで改行などが出来ないのです。
-
IF関数でEmpty値を設定する方法。
-
Javaで電卓を作りたい
-
応用情報技術者試験の令和元年...
-
論理演算子”||”またはの入力方法
-
ダブルクォーテーションのrepla...
-
Javaでお絵描きソフトを作りた...
-
byte[] を long,float とかに...
-
VBSエラー"オブジェクト型の変...
-
javaです。1月1日から日数入れ...
-
ArrayListの要素数の上限
-
ページング
-
パソコンキーボードで時分秒を...
-
エクセルで小数の中の最大値を...
-
ArrayListからBean配列に値をセ...
-
Javaで文字と数字が混ざったも...
-
Javaのコマンドライン引数を使...
-
JavaでのSwingを使った簡易電卓...
-
C#で配列の戻り値について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
strcmp関数などでの複数の文字...
-
マルチスレッドで同時にFTPアッ...
-
C#での関数テーブルの作り方
-
特定の文字列が一致する行から...
-
string→CStringの型変換について
-
【Java8以降】csvファイルの複...
-
GDI+ DrawString() で指定範囲...
-
「指定されたキャストは有効で...
-
C#でIPアドレスの取得について
-
C# JSONについて
-
Delphiで改行文字の置換がうま...
-
C#で型変換
-
java HashMapで数値データを取...
-
C++のmap
-
strtokでの空文字への置き換え
-
GridViewで複数のDropDownList...
-
PHPのSHA256変換について
-
C++におけるポインターと変数の...
-
C# visual studio 2017 TCP/IP...
おすすめ情報