如何从DateTime获取ToString()

时间:2012-07-13 09:46:26

标签: linq

我尝试使用以下代码获取字符串的ToLower()方法。

 var tolowerMethod = typeof(string).GetMethods().Where(m => m.Name == "ToLower").FirstOrDefault();

我正在尝试获取DateTime的ToString()方法。我使用了以下代码

var formatMethod = typeof(DateTime).GetMethods().Where(m => m.Name == "ToString").ElementAt(1);

这不是唯一的。我尝试了类似下面但没有成功的事情。

var formatMethod2 = typeof(DateTime).GetMethods().Where(m => m.Name == "ToString").Where(x=>x.GetParameters().Select(t=>t.ParameterType).Equals(typeof(string))).FirstOrDefault();

任何想法?

由于

2 个答案:

答案 0 :(得分:3)

它必须是linq吗? 你可能想要这样的东西:

 var x = typeof(DateTime).GetMethod("ToString", new Type[] { typeof(string) });

 var x = typeof(DateTime).GetMethod("ToString", new Type[] { });

或  ...

答案 1 :(得分:1)

这取决于你想要的ToString()方法的重载:

var method = typeof( DateTime ).GetMethods( )
                               .Where ( item => item.Name == "ToString" && 
                                                item.GetParameters( ).Count () == 0 );

// this is the DateTime.Now.ToString( ) method without any parameter