2012-07-13 58 views
0

我试图使用下面的代码获取字符串的ToLower()方法。如何从DateTime获取ToString()

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(); 

任何想法?

谢谢

+0

DateTime类有'ToString()'方法的重载,那么如何使用你的lin函数获得单一方法q声明。 – 2012-07-13 09:56:41

+0

哪个'ToString()'重载? – Bazzz 2012-07-13 10:01:53

回答

2

是否必须是linq? 你可能想是这样的:

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

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

或 ...

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 
相关问题