2016-03-21 8 views
2

のパラメータとして、私はボタンからメソッドを持っているのC#(私はちょうど楽しみのために働いている小さなゴルフスコアリングプログラム)に次のコードをクリックしてください:パス+ =や - = C#の

private void btnPlus_Click(object sender, EventArgs e) 
{ 
    btnMinus.Enabled = true; 
    if (f_intHoleNumber != 18) { f_intHoleNumber += 1; } 
    if (f_intHoleNumber == 18) { btnPlus.Enabled = false; } 
    txtHoleNumber.Text = f_intHoleNumber.ToString();    
} 

それをリファクタリングして別のメソッドを抽出してコードを再利用しないようにしたいが、オペレータ(+ =)をメソッドのパラメータとして渡すことが可能かどうかはわからない。これはできますか?

+0

2つの方法を作成します。最初に値を増やし、2番目の値を減らします。何が問題なの? – SeM

+2

さらに単純に、値 'f_intHoleNumber + = value'を渡します。ここで 'value'は' + 1/-1'です。 – xanatos

答えて

4

私はそうは思わない。メソッドに+1または-1を渡し、加算または減算する値を乗算するとどうでしょうか? 例:

public float calc(float val1, float val2, int op) 
{ 
    return val1 + op * val2; 
} 
+1

または、単純に '-1 * value'に入れます。 –

+0

決してそれを考えたことはありません。良いこと。ありがとう! – snapper

+0

私は助けてくれてうれしいです。 :) – Spatzenjaeger

0

加算と減算を行う方法を渡すことができます。あなたはおそらくそのルートに行きたいと思うでしょう。 Pass Method as Parameter using C#

+1

これは答えよりもコメントです。 –

+0

申し訳ありませんが、違いがあったことを認識していませんでした。 –

+0

あなたは本当にソリューションを提供しているわけではなく、ソリューションへのリンクです。 [これはもっとコメントです。](http://meta.stackexchange.com/q/225370/245360) –

0

Func<int, int>には、1つのintパラメータを受け入れ、intを返すことができます。