将Expression作为参数传递
本文关键字:参数传递 Expression | 更新日期: 2023-09-27 18:09:49
我正在尝试设计这样的东西
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
的东西,但它看起来太大了,在我知道我需要它之前,我不想深入研究它。
传递的参数是条件参数。它们返回布尔值。考虑到这一点,您需要相应地构建处理方法:
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());
}
}
}