C# 在方法中将关系运算符作为参数传递

C# 在方法中将关系运算符作为参数传递,c#,methods,arguments,operator-keyword,C#,Methods,Arguments,Operator Keyword,我是个新手。我想做一些类似的事情: private int myLoop(int start、int end、string relationalOperator) { 整数计数=0; for(int i=start;i=); 因此,我可以将关系运算符作为参数传递。这是如何实现的?不,您不能。请参阅例如 但是,您可以传递一个委托。这实际上更加灵活,因为调用方可以使用比简单的比较运算符更复杂的逻辑。但这通常不会成为问题 在您的示例中,它可能如下所示: private int myLoop(int

我是个新手。我想做一些类似的事情:

private int myLoop(int start、int end、string relationalOperator)
{
整数计数=0;
for(int i=start;i=);
因此,我可以将关系运算符作为参数传递。这是如何实现的?

不,您不能。请参阅例如

但是,您可以传递一个委托。这实际上更加灵活,因为调用方可以使用比简单的比较运算符更复杂的逻辑。但这通常不会成为问题

在您的示例中,它可能如下所示:

private int myLoop(int start、int end、Func op)
{
整数计数=0;
对于(int i=start;i x>=y
是一个lambda表达式。C#编译器将其转换为一个匿名方法,在这个特定示例中,该方法采用两个参数,使用这些参数计算表达式
x>=y
,并返回结果。编译器根据上下文推断参数类型为
int
本例是您正在调用的方法