私は最近c#チームからvb.netチームに切り替えました。私が答えを見つけることができなかったことの1つは、コンパイルエラー/オプションの違いです。私に説明させてください。なぜVB.NETでエラーが発生しない
C#では、以下のようなテンプレート化されたクラスに無効な型を渡そうとすると、デフォルト設定を使用してコンパイル時エラーが発生します。ここでは、文字列型のAnimalを作成し、その後、コンパイルエラーの原因となるdatetimeを渡します。
IAnimal<string> animal = new Animal<string>();
animal.SetTrainer(DateTime.Now);
は、私が「strictオプション」とvb.netで同じコンパイル時エラーになります知っています。しかし、同じファイルには "Option Strict"でコンパイルされないレガシー(VB)コードがたくさんあります。どのようなオプションがありますか?私はこれを考えて:
- "Option Strict"に切り替え、すべてのエラーを修正します。しばらく時間がかかり、作業コードが壊れる可能性があります。
- おそらくジェネリックのコンパイル時間チェックを保証する別の方法があります。すべてのジェネリック薬はかなり新しいので、多分それは常にこれを強制する方法があります。
- ?
事前
+1非常に同意します。しかし、これについて気にするなら、**プロジェクトレベルでOption Strictを有効にして**オプションを各ファイルに追加する**オプションなしではコンパイルされません。ステップバイステップで、既存のコードをリファクタリングします。 –
これについてあなたの考えを共有してくれてありがとう。私は私のチーム – Flodpanter
@アドリアーノ、+1と議論します - それはおそらく最高の解決策です。 –