我正在尝试创建一个函数,我可以给它一个操作> < == !=等.我想知道是否有可能将其中一个设置为函数的参数,
即: UseOperator("test", >, 0)
如果不是最好的办法来处理这样的事情?也许是一个枚举?
Jon*_*eet 10
最自然的方法是传递一个代表,即IMO,例如类型Func<int, int, bool>.遗憾的是,您无法将运算符直接转换为委托 - 但您可以非常简单地编写方法并使用方法组转换:
public void UseOperator(string name, Func<int, int, bool> op, int value)
{
...
}
public static bool GreaterThan(int x, int y, value)
{
return x > y;
}
UseOperator("test", GreaterThan, 0);
Run Code Online (Sandbox Code Playgroud)
Marc Gravell 在MiscUtil中对泛型运算符的研究可能对您有用.
这是不可能的,但您可以使用函数委托:
UseOperator("test", (x, y) => x > y, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |