アホくさいミスによる VB.NET のエラー[プログラミング]
(2017-05-08 13:54:28) by shinoda


List(Of String)型の変数に格納されたデータを、

Dim buff As New List(Of String)
Dim str As String
...(略)
buff.Add(hogehoge)
...(略)

str = String.Join("/", buff)

みたいに連結してひとつの String 型の変数にセットする処理が、あるプロジェクトではエラーにならず、あるプロジェクトでは

BC30311 型 'List(Of String)'の値を 'String()' に変換できません。

のエラーになってしまう。

str = String.Join("/", buff.ToArray)

という具合に明示的に型変換をしてやればエラーは出ないので、どこかに「暗黙の型変換を許すか否か」の設定があって、それでエラー有無の違いになってんじゃねえの?と思い、他のソースの比較や、プロジェクトのプロパティの内容の確認などしてたんだけど、そんな設定項目は見つからず。

結局、同僚が「あ、これじゃない?」と「原因」を見つけてくれて解決した。ありがたや、ありがたや。

まあ、ほんとは恥ずかしいので書きたくないんだけど、このブログ、俺のメモ帳でもあるので書いとく。

原因は、プロジェクトのプロパティ内の「アプリケーション」→「対象のフレームワーク」が「.NET Framework 2.0」になっていたため。
最新の「.NET Framework 4.6.1」を指定しなければいけなかった。
これだけでエラー消滅・・・

ああ・・・何というしょうもないミスでしょう・・・ 5/2 から日をまたいでずっと悩んでたよ(^^;;;;

同じコードなのに動きが違う場合、.NET Framework のバージョンも確認するようにしないとな。

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8