VB.NETでのジェネリック
-
19-09-2019 - |
質問
さて、C#のプログラマーとして、私は、ジェネリック医薬品は素晴らしいであることを知っています。 いくつかのVB.NETに手を染めたときしかし、私は次のようにコンパイルエラーが発生しないことを発見します:
Dim instance As List(Of Integer)
instance.Add(True)
これはなぜでしょうか?私はあなたがVB.NETでキャストする必要がないことを知っているが、私は、これはジェネリックを使用する主な理由殺すことを考えているだろう - 。型の安全性を
の編集:これはちょうど私が理論的にはVB.NETを見た、実際のプログラミング演習ではなかったとしての私は、上のオプションは、厳密な必要はありません。私はそれだけでジェネリック型の特徴として、でもオプション厳しいオフでコンパイルエラーを引き起こすことが期待していたように、それは、理論的な質問です。
解決
Option Strict On
がなければ、VB.NETは、暗黙的にBoolean
にInteger
を変換して幸せです。私は強くあなたがVB.NETの仕事のためOption Strict On
デフォルトにすること(特にC#の背景から来る)をお勧めします。
あなたはTools
でのVisual Studioでこれを行うことができます| Options
| Projects and Solutions
| VB Defaults
ます。
の編集のVB(クラシック)「リラックスした態度の詳細については、変換、Googleの '悪の型変換' と入力します。 VB(クラシック)で良い仕事をしようと私たちの人は、しばらくの間、この悪魔を格闘しなければならなかった...
他のヒント
あなたはオプション厳格にはなって持っています上の?
VB.NET関数呼び出しサイトに変換します。 (整数)のリストは、依然として(真の整数値である-1、整数)を記憶している