将表达式作为参数传递

时间:2015-08-25 14:55:16

标签: c#

我正在尝试设计类似这样的东西

String name = "John";
Int32 age = 30;

var variable = SomeClass.SomeMethod(Name != "Bob", age > 50)

我希望能够做一些像

这样的事情
SomeClass.GetName();
SomeClass.GetAge();
SomeClass.IsAgeAboveThreshold();

我希望Name != "Bob", age > 50采用这种格式,可以添加更多参数而不仅仅是那些2。这些都不是:x=>

我如何设计SomeClass

我确实调查了Expressions和一些Lambda的内容,但它看起来非常令人难以置信,在我知道自己需要之前,我并不想深入研究它。< / p>

1 个答案:

答案 0 :(得分:0)

您传递的参数是条件。它们返回布尔值。考虑到这一点,您需要相应地构建处理方法:

public static string SomeMethod(bool nameTest, bool ageTest)
{
    ...
}

这是一个小测试,用例说明了一些基本功能:

class Program
{
    public static void Main()
    {
        String name = "John";
        int age = 30;

        var variable = SomeClass.SomeMethod(name != "bob", age > 50);

        Console.Write(variable);
        Console.ReadKey();
    }

    public class SomeClass
    {
        public static string SomeMethod(bool nameTest, bool ageTest)
        {
            return string.Format("nameTest is {0}, ageTest is {1}", nameTest.ToString(), ageTest.ToString());
        }
    }
}