0

以下のコードを使用して、文字列の 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();

何か案は?

ありがとう

4

2 に答える 2

3

linqである必要がありますか?あなたはおそらく次のようなものが欲しいでしょう:

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

また

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

また ...

于 2012-07-13T10:09:09.717 に答える
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
于 2012-07-13T10:09:17.300 に答える