如:DateTime结构有静态运算符“〉”怎样通过反射机制来调用它呢,
我在调用其它静态函数如DaysInMonth使用的是如下代码
object o = t.InvokeMember("DaysInMonth",BindingFlags.Public|BindingFlags.InvokeMethod|BindingFlags.Static
,null,null,new object[]{2005,2});
MessageBox.Show(o.ToString());

解决方案 »

  1.   

    我发现可以通过这种方法调用DateTime的“<”运算符
    Type t = typeof(DateTime);

    object o = t.InvokeMember("op_LessThan",BindingFlags.Public|BindingFlags.InvokeMethod|BindingFlags.Static
    ,null,null,new object[]{DateTime.Now,DateTime.Now.AddDays(1)});
    但对于基本类型 int,string等就没有相应的函数,
      

  2.   

    暂时只好调用CompareTo方法,来动态比较了
      

  3.   

    你就直接把表达式搞成字符都可以运行时计算
    看看 清柳的blog
      

  4.   

    http://blog.csdn.net/zeusvenus/archive/2006/01/26/588955.aspx
      

  5.   

    这篇文章所描述的可以解答我所需要的问题,
    但其方式可能过于复杂,
    我的目的是,动态的两个值,动态的类型,以及动态的操作符,希望在执行时返回一个bool值
    若采用这种方式可能对于每一个类型都需要生成一段代码,否则类似
    function LessThan(object v1,object v2)
    {
           return v1<v2;
    }
    的代码不能通过编译,也可以通过类型值生成
    function LessThan(DateTime v1,DateTime v2)
    {
           return v1<v2;
    }

    function LessThan(string v1,string v2)
    {
           return v1<v2;
    }
    ...
    在2.0里使用泛型或者可以
    function LessThan(T v1,T v2)
    {
           return v1<v2;
    }
    我觉得现在还是使用CompareTo函数更简单
    基本类型,DateTime等都实现了该函数,其接口也是一致的,不需要另写代码
    若使用新增的类,只要其实现
    CompareTo函数都可以使用
    应该比要重新实现一套运算符更简单
      

  6.   

    http://www.cnblogs.com/jillzhang/archive/2006/08/10/473326.html