我可以将委托定义为c#中函数的限制吗?
发布时间:2020-12-15 23:34:52 所属栏目:百科 来源:网络整理
导读:假设我有两个函数:f(x,y)和g(x).在数学中,如果你有一个固定的y,比如y_fix,你可以定义: g(x) := f(x,y_fix) 现在假设g()是一个c#委托,f是一个实现的函数. 我能以类似的方式定义g(x)吗?例如 public delegate double SingleVariableFunction(double x);publi
假设我有两个函数:f(x,y)和g(x).在数学中,如果你有一个固定的y,比如y_fix,你可以定义:
g(x) := f(x,y_fix) 现在假设g()是一个c#委托,f是一个实现的函数. 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; } } 解决方法
它被称为
partial application.
在C#中,您可以使用lambda表达式构造g: g = x => f(x,y_fix); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |