2015-08-25 88 views
-1

我想设计这样的事情传递表达式作为参数

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的东西,但它看起来非常令人难以置信,在我知道我需要它之前,我不想深入探究它。

+1

为什么你不希望使用'X = >'? –

+0

为什么不使用LINQ或普通的旧属性,以及lambda表达式有什么问题?从事物的声音中,你接近你想要解决的任何问题的方式都是一种真正的代码味道。 – tsacodes

+0

我可以在'SomeClass'内使用'x =>'或任何我想要的东西,但是这个参数格式需要完全像这样,并且超出了我的控制范围。 – user2824991

回答

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()); 
     } 
    } 
} 
相关问题