アプリ版:「スタンプのみでお礼する」機能のリリースについて

すみません、ご存じの方教えてください。
PHPでは次のような形で文字列で関数を呼び出せるようですが、C#でも同じ事ができますでしょうか?
$str = "MyFunc1";
$str("Hellow");
function MyFunc1($abc){
echo "$abc";
}

A 回答 (3件)

// ReflectionでPrivateメソッドを参照する


this.GetType().GetMethod(
RadioButtonText,
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic
).Invoke(this, null);
    • good
    • 0
この回答へのお礼

できました!
ありがとうございました。

お礼日時:2012/02/06 18:55

C#なら、delegateを使うのが一般的です。


(参考)
http://ufcpp.net/study/csharp/sp_delegate.html#d …

この回答への補足

説明が不十分で申し訳ありません。
ラジオボタンが大量にあり、選んだボタンとスタートボタンによりプログラムを起動したいのですが、なるべくシンプルに書けないかと思い悩んでいます。
現在はラジオボタンのテキストを取りして、switchで起動するプログラムを選んでいますが、ラジオボタンのテキストから直接プログラムを起動できないかと思いました。

//プログラム開始ボタン
private void buttonStart_Click(object sender, EventArgs e)
{
 string RadioButtonText = null;
 foreach (RadioButton prgText in groupBox1.Controls)
  {
   if (prgText.Checked){RadioButtonText = prgText.Text;break;}
  }

 switch (RadioButtonText)
 {
  case "Func1": Func1(); break;
  case "Func2": Func2(); break;
  case "Func3": Func3(); break;
  default: break;
 }
}

private void Func1() { }
private void Func2() { }
private void Func3() { }

何か他の方法があるでしょうか?
delegateを使うとシンプルに書けそうでしょうか?

補足日時:2012/02/06 14:17
    • good
    • 0
この回答へのお礼

delegateによる方法もチャレンジしてみます。ありがとうございました。

お礼日時:2012/02/06 18:56

それだけでいいなら, 「文字列を引数に持つ関数」を作ればいいだけ, では?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!