c# - 将运算符存储在变量中

标签 c# variables operators

有没有办法将运算符存储在变量中?我想做这样的事情(伪代码):

void MyLoop(int start, int finish, operator op)
{
    for(var i = start; i < finish; op)
    {
        //do stuff with i
    }
}

然后我可以像这样调用这个方法:

MyLoop(15, 45, ++);
MyLoop(60, 10, --);

C# 中有这样的东西吗?

最佳答案

我想是这样的。您不定义运算符,而是定义一个函数 (lambda),它会为您进行更改。

void MyLoop(int start, int finish, Func<int, int> op)
{
    for(var i = start; i < finish; i = op(i))
    {
        //do stuff with i
    }
}

然后我可以像这样调用这个方法:

MyLoop(15, 45, x => x+1);
MyLoop(60, 10, x => x-1);

关于c# - 将运算符存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14255618/

相关文章:

c# - Entity Framework 如何处理事务?

c# - 为什么 C# 的二元运算符总是返回 int 而不管其输入格式如何?

c++ - 这行 C++ 代码是什么意思 "sol<?=f((1<<n)-1,i,0)+abs(P[i])*price;"

json - 确定 perl 标量是字符串还是整数

javascript - 在另一个变量的标题中使用来自一个变量的数据 - javascript

c++ - C++ 中的魔术表达式 x = y - x + (y = x)

javascript - 将 "in"运算符用于带有 javascript 的二维数组

c# - 根据 XSLT 将 HTML 转换为 XML

c# - 修剪所有字符串属性

c# - Swagger 的错误。服务器在处理请求时遇到错误