2016-08-23 10 views
3

私は2つの関数f(x、y)とg(x)があるとします。あなたは、固定のyを持ってy_fixを言うならば、数学では、あなたが定義することができます。デリゲートをC#の関数の制限として定義できますか?

g(x) := f(x,y_fix) 

を今すぐグラム()は、C#のデリゲートであり、fが実現される機能であると仮定します。 g(x)を同様の方法で定義できますか?例えば

public delegate double SingleVariableFunction(double x); 
public class SomeClass 
{ 
    SingleVariableFunction g; 
    double y_fix; 

    public SomeClass() 
    { 
     y_fix = 2; 
     g = f( ,y_fix); /// Is this possible somehow? 
    } 

    public double f(double x, double y) 
    { 
     return x + y; 
    } 
} 
+0

'= F G(、y_fix)とは何である;'表すことになって? '、'はタイプミスですか? – Blorgbeard

+0

@Blorgbeardこれは 'f()'の最初の引数です。 OPの質問です。 – itsme86

答えて

7

partial applicationと呼ばれています。あなたはラムダ式でgを構築することができますC#ので

g = x => f(x, y_fix); 
+0

恐ろしい@ just.ru! C#はとてもうまくいっています! –