Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
拡張メソッドが突然エラーに
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30833#CommentId85588
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2023/1/12 13:51:30
まず試して頂きたいのは、ソリューションの「クリーン」を行ってから Visual Stdio を一度終了させてみて、
改めて起動しなおしてからリビルドしなおして、それで改善されるかどうかです。
クリーンしてみても駄目ならば、拡張メソッドとして呼び出している
Dim bookCode As Integer = dtBook.MinimumLackedNumber("bookCode")
というコードを、拡張メソッドとしてではなく通常の
Dim bookCode As Integer = Global.ルート名前空間名.DatatableExtensions.MinimumLackedNumber(dtBook, "bookCode")
の呼び出しに替えてみて、エラーが解消されるかどうかを確認してみてください。
また、Module 内の
Function MinimumLackedNumber を
Function MinimumLackedNumber2 と置き換えた場合はどうでしょうか。
それによって、DBBookOperation.AddBook 内の
Dim bookCode As Integer = dtBook.MinimumLackedNumber("bookCode") '★
という問題個所が、どのような変化を見せるか知りたいです。
(1) 呼び出せるようになる
(2) エラー BC30456 になる ('MinimumLackedNumber' は 何某 のメンバーではありません。
(3) エラー BC30521 のまま (これらの引数に最も固有な、アクセス可能な'MaxNumber'がないため、オーバーロードの解決に失敗しました)
> 何より今まで動かせていたのが急に動かなくなり途方に暮れています。
エラーになっているのは、その 2 箇所だけなのでしょうか。
最近、プロジェクトのプロパティで「ルート名前空間」を変更したり、意図的に Namespace を拵えてみたとか、
あるいは Module に Partial キーワードをつけてみた…といった記憶も無いのですよね?
本当の意味で重複登録であったのなら、
BC30269『'Public Function MaxNumber(dt As DataTable, column As String) As Integer' には同じ署名で複数の定義が存在します。 』
が発生すると思いまし、重複ではなく競合だった場合には、
BC30179 『module 'DatatableExtensions' と module 'DatatableExtensions' が namespace '何某' で競合しています。』
が発生すると思うのですが、現状は、いずれも発生していない状況なのですよね…?
上記のいずれかが生じている場合、DBBookOperation.AddBook(String) のみならず、
DatatableExtensions 側におきましても、Public Function MinimumLackedNumber 内の
「Dim max = MaxNumber(dt, column)」の行で、オーバーロードを解決できないずに
BC30521 となるはずで、事象を再現するには至っていません。