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

次のコードを見てください。コメントにあるように デリゲートを引数とする関数内部で、そのデリゲートが受け取った関数の関数自身の名前を取得しようとしています。どうすればいいでしょうか?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ラムダ式
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//引数aとbの初期値
this.textBoxA.Text = "10";
this.textBoxB.Text = "5";
}

//int型を返し(I)int型2つを引数にする関数のデリゲート
public delegate int I_II(int a, int b);

public static int 足し算(int a, int b)
{
return a + b;
}
public static int 引き算(int a, int b)
{
return a - b;
}
public static int 掛け算(int a, int b)
{
return a * b;
}
public string 二項演算(I_II 演算方法)
{
//ここでは、演算方法.tostring()を使って"足し算" や"引き算"などの
//関数名を得ようとしているが。この方法だと,デリゲートの名前
//すなわち I_II が帰ってきてしまう
//どうすれば デリゲートが参照している関数名 ”足し算”や"引き算など"
//を得ることができますか?
string 関数名 = 演算方法.ToString();
return 関数名 + ": " + 演算方法(int.Parse(textBoxA.Text), int.Parse(textBoxA.Text)).ToString() + "\r\n";
}

private void button1_Click(object sender, EventArgs e)
{
textBox結果表示.Text = "";
textBox結果表示.Text += 二項演算(足し算);
textBox結果表示.Text += 二項演算(引き算);
textBox結果表示.Text += 二項演算(掛け算);

}
}
}

A 回答 (1件)

演算方法.Method.Name

    • good
    • 0
この回答へのお礼

ずばりでした!ありがとうございます

お礼日時:2013/03/28 14:11

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