Linq よく使用する型

C# GetMethodメソッドでContainsメソッドを上手く取得できない場合の対処方法。 System.Reflection.AmbiguousMatchExceptionの対処方法

今回のテーマ

こんばんは、かっぱちゃんです!!

ココがポイント

今回のテーマはGetMethodメソッドを使用して、Containsメソッドが上手く取得できない場合の対処方法です。

今回は私もハマった忘備録でもあるので、短いです!

では、早速みていきましょう!!

KappaChan
今回はGetMethodメソッドについてかっぱ!

GetMethodメソッドの使い方

GetMethodメソッドを使用すると、指定したメソッドを取得することが出来ます。

可変のラムダ式を作る時に役に立つんですよね。後日記事にしたいと思います。

下記はGetMethodでstring型のメソッド「ToLower」メソッドを取得した時の例です。

 出力結果
ToLower

何も面白くないソースコード結果ですみません 😥 

これを同じようにString型のContainsメソッドを取得してみます。

同じようにString型のContainsメソッドを取得してみる

Containsメソッドを取得してみましょう。何も考えずに同じように指定すると・・・

 出力結果
System.NullReferenceException

Nullとなりました。

この理由はToLowerメソッドは引数が無いのに対して、Containsはstring型を引数として指定しなければならないからです!

例としては下記のようなイメージですね!!

因みに第2引数を指定しないと、下記のエラーが出てしまいます。

System.Reflection.AmbiguousMatchException

これは、Containsメソッドには、char型とstring型を引数として指定出来るので、どちらを取得すればいいのか分からないよ!ということです。

なので、引数がどの型なのか具体的に指定してあげましょう!指定方法は下記のソースコードです!

この指定方法が分かるまで本当に時間がかかった・・・。汗

 command
Contains
Contains

無事に指定できましたね^^

まとめ

今回の記事は色々調べても情報が全然なかったので、私の忘備録としても記事とさせて頂きました。

この記事の流れで可変のラムダ式についても触れていけたらなと思います!!

今回の記事がお役にたてたなら光栄です!!

是非、他の記事も役に立つと思うので、みてください!!!

KappaChan
最後までみてくれてありがとうかっぱ!

 

新しいサイト作りました。アニメのまとめサイトです。

レインボーリアルタイムTwitter(アニメ版)


映画ドキュメンタリ版のブログはこちら
レインボーまとめサイト(映画ドキュメンタリー版)
ポケモンまとめブログはこちら
レインボーまとめサイト(ポケモン版)

-Linq, よく使用する型

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock