Linq よく使用する型

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

今回のテーマ

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

ココがポイント

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

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

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

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

GetMethodメソッドの使い方

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

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

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

 出力結果
ToLower

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

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

C#のエンジニアであれば、絶対買ってほしい本2選

C#の初心者にオススメ!基本はこの本で抑えよう!


Linqの使い方が沢山載っている。中級者以上の方にオススメ!

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

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

 出力結果
System.NullReferenceException

Nullとなりました。

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

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

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

System.Reflection.AmbiguousMatchException

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

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

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

 command
Contains
Contains

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

まとめ

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

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

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

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

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

 

プログラミング能力を上げたい方は是非オンラインのプログラミング教室も検討してみてくださいね!!

一人で独学をするよりもプロからオンラインでプログラミングを教えてもらった方が10倍は効率いいです!!

私が厳選したオススメのオンライン教室を貼っておきます!!どちら共、エンジニアとしての就職までサポートしてくれる素晴らしい教室です。キャリアなどの個別相談は無料ですよ!!

申し込みは完全無料!未経験でITエンジニアを目指したい方にオススメ!

Webエンジニアになりたい方にオススメ!個別相談は無料!

KappaChan
オンラインのプログラミング教室は本当にオススメかっぱ!!

-Linq, よく使用する型

X