Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
拡張メソッドが突然エラーに
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30833#CommentId85590
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2023/1/13 11:07:59
今のところ、現象を再現させられるパターンを見つけ出せずにいます。
機微情報を取り除いて、必要最小限の実験コードにまで縮小した
サンプルコードを提示してもらえると追跡しやすいのですけれど、難しいですかね。
> ⇒◎これでなら動きました!
名前空間を明示すると動くのであれば、オーバーロードというよりは、
名前空間の異なる同名モジュールがあるパターンでしょうか…。
(あるいは拡張メソッドが別の DLL で提供されていた可能性もある?)
プロジェクトのプロパティの[参照設定]タブ内にある「インポートされた名前空間」あるいは
.vb ファイル先頭に書かれる Imports 宣言によって、.NET の標準ではない
自作コードの名前空間が追加されていたりはしますか?
さきほどの修正で
= Global.ルート名前空間名.DatatableExtensions.MinimumLackedNumber(dtBook, "bookCode")
とすることで呼べるようになったコードを
= Global.ルート名前空間名.MinimumLackedNumber(dtBook, "bookCode") 'モジュール名省略
= DatatableExtensions.MinimumLackedNumber(dtBook, "bookCode") 'ルート名前空間省略
= MinimumLackedNumber(dtBook, "bookCode") 'メソッド名のみ
に変えてみてください。この中に呼べなくなるパターンはありますか?
> 他にもう1つ、DataTableの拡張メソッドがあり、同様のエラーが出ていますが、省略しました。
そのエラーが、結果的に他のエラーを誘発する要因になっていた可能性も無いとは言えず。
Public Module DatatableExtensions を見てみると、
Public Function MinimumLackedNumber において
Dim max = MaxNumber(dt, column)
という呼び出しが行われていますが、これを
Dim max = dt.MaxNumber(column)
の拡張メソッド構文で呼び出すことはできるのでしょうか。
それとも、拡張メソッド構文だと、ここも BC30521 になってしまいますか?