List(Of String)型の変数に格納されたデータを、
みたいに連結してひとつの String 型の変数にセットする処理が、あるプロジェクトではエラーにならず、あるプロジェクトでは
のエラーになってしまう。
という具合に明示的に型変換をしてやればエラーは出ないので、どこかに「暗黙の型変換を許すか否か」の設定があって、それでエラー有無の違いになってんじゃねえの?と思い、他のソースの比較や、プロジェクトのプロパティの内容の確認などしてたんだけど、そんな設定項目は見つからず。
結局、同僚が「あ、これじゃない?」と「原因」を見つけてくれて解決した。ありがたや、ありがたや。
まあ、ほんとは恥ずかしいので書きたくないんだけど、このブログ、俺のメモ帳でもあるので書いとく。
原因は、プロジェクトのプロパティ内の「アプリケーション」→「対象のフレームワーク」が「.NET Framework 2.0」になっていたため。
最新の「.NET Framework 4.6.1」を指定しなければいけなかった。
これだけでエラー消滅・・・
ああ・・・何というしょうもないミスでしょう・・・ 5/2 から日をまたいでずっと悩んでたよ(^^;;;;
Tweet
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 のバージョンも確認するようにしないとな。
コメントする