C#或函数式编程:if语句作为运算符(或函数)

时间:2013-05-31 18:12:18

标签: c# if-statement functional-programming operators extension-methods

我将从问题本身开始。

  

有人可以给我一个或多个单词作为方法名称,这将是一个前向if语句吗?

我对这个问题的解释将从一个类比开始。

'add' is to 'plus' as 'if' is to what?

可能更好地表达为:

add 10 to 5         => 5 + 10
if true then action => action (?) true [OR] true (?) action

上面[OR]的原因是因为意图的方向:

add 10 to 5         => 5 + 10
     |----^            ^---|

if true then action => action (?) true [OR] true (?) action
    ^----------|         |---------^         ^---------|

我不知道在方向方面最有意义的是什么。我将其与函数式编程联系起来的原因是我想在C#中创建一个扩展方法,它看起来像:

bool.[FuncName](action)

在该语言中,我认为从上到下的“5 + 10”示例中,从左到右阅读更容易。所以,我的方法会扩展boolean并要求将操作作为C#Action。我正在寻找正确的名称来命名这种方法。

如果您想要另一个方向,它将如下所示:

action.[FuncName](bool)

在代码中(如果我以这种方式编写扩展方法):

(new Action(TestMethod)).If(testBool);

但这是你如何自然地思考它的倒退。它说,“如果右边的testBool是真的,那么在左边执行动作TestMethod。” “If”这个词是有道理的,因为一般来说,它说“如果这个条件成立,就会发生这种行为”。但是,我希望这个或多个单词成为if语句的正向版本。

我最接近的想法:

testBool.WhenTrue(new Action(TestMethod));

你们有什么想法?

0 个答案:

没有答案