型チェック スイッチ (Option Strict ステートメント) がOnに設定されている間に、型をLongをIntegerなど、値を格納できない可能性がある別の型に変換しようとしました。
この種類の変換は 縮小変換と呼ばれ、実行時に失敗する可能性があります。 このため、 Option Strict On は暗黙的な縮小変換を禁止します。
エラー ID: BC30512
このエラーを解決するには
任意の型の変換が
<type1>から<type2>に存在するかどうかを判断します。 両方が Visual Basic 基本型の場合、または両方がクラスのインスタンスである場合は、通常、 拡大変換と縮小変換の表を参照して、この決定を行うことができます。<type1>から<type2>への縮小変換のみが存在する場合は、明示的なキャストを使用する必要があります。 変換が失敗した場合、 CType 関数 キーワードと DirectCast 演算子 キーワードは実行時例外をスローします。 TryCast Operator キーワードは参照型にのみ適用され、変換が失敗した場合は Nothing を返します。縮小変換が存在し、プログラムが実行時エラーを許容できる場合、または実行時エラーが不可能であると確信している場合は、ソース コードの先頭に
Option Strict Offを指定できます。 ただし、変換は Try で囲む必要があります 。捕まえる。。。Finally Statement は、予期しない結果やプログラムの早期終了を回避するためにブロックします。<type1>から<type2>への変換が存在しない場合は、プログラム ロジックを再評価する必要があります。<type1>の予想される値に対応する値を<type2>に割り当てることができるコードを記述できる場合があります。<type1>から<type2>への変換が存在せず、いずれかの型が定義したクラスまたは構造体である場合は、その型から他の型への変換演算子を定義できます。 詳細については、「 方法: 変換演算子を定義する」を参照してください。いずれの場合も、一般的なガイドラインとして、
Catchブロックで障害をトラップして効果的に対処できない限り、縮小変換の使用は避ける必要があります。
こちらも参照ください
.NET