同じ質問で昔以下の回答がありましたが、今はライブラリが進歩しているようなので、より新しい構文を使った書き方がありましたら、是非ご教授いただければと思います。
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ランキング
-
「指定されたキャストは有効で...
-
特定の文字列が一致する行から...
-
C#で型変換
-
C# JSONについて
-
C# ListBoxのアイテムをユーザ...
-
string→CStringの型変換について
-
strtokでの空文字への置き換え
-
Log4jで機能毎に別ファイルへ出...
-
flush()とclose()について
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
-
javaで質問です。 文字列2023/2...
-
[JAVA]try 内の変数を外で!?
-
Javaで改行などが出来ないのです。
-
このプログラミング誰か教えて...
-
JSPやサーブレットでSystem.out...
-
ダブルクォーテーションを含む...
-
System.err. printlnとSystem.o...
-
変数を動的に利用するには?
-
int型のゼロ埋め
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# ListBoxのアイテムをユーザ...
-
特定の文字列が一致する行から...
-
strcmp関数などでの複数の文字...
-
C#でIPアドレスの取得について
-
Delphiで改行文字の置換がうま...
-
C#での関数テーブルの作り方
-
C# JSONについて
-
C#でプロパティを使わずXMLにデ...
-
C#で型変換
-
マルチスレッドで同時にFTPアッ...
-
「指定されたキャストは有効で...
-
GridViewで複数のDropDownList...
-
【Java8以降】csvファイルの複...
-
strtokでの空文字への置き換え
-
C++ ファイルからデータを取得
-
C++のSTL mapを使用するとセグ...
-
GDI+ DrawString() で指定範囲...
-
std::stringの継承
-
string→CStringの型変換について
-
2つのリストのマージ方法について
おすすめ情報