質問者
「Option Strict Off」を特定の範囲だけに適用するには?

質問
すべての返信
-
使用する場合、Option Strictステートメントは、ファイル内の他のコード ステートメントの前に出現する必要があります。
とのことですので、限定的には設定できません。
Option Strict Offを使用するよりも、問題を根本的に解決することをお勧めします。(そのために分からないことがあれば、当フォーラムで質問すればいいと思います。)
-
-
佐祐理さんと同じような回答になりますが、
Option Strict ステートメント
https://docs.microsoft.com/ja-jp/previous-versions/zcd4xwzs(v=vs.120)によると、
「Option Strict ステートメントを使用する場合は、ファイル内の他のどのコード ステートメントよりも前に記述する必要があります。」
とありますので、1つのファイル内で切り替えるのは無理でしょう。
>もちろん「Option Strict On」で記述できるようにするのが理想なんですが、どうしてもそれができない場合があるんです。
Option Infer Onを併用してもダメなんでしょうか? C#のdynamicと違って明示的に指定するわけではないので、型の書き忘れを防ぐ目的では使えなさそうですが・・・
Option Infer ってなんだろう
https://karua.at.webry.info/200703/article_13.html★良い回答には質問者は回答済みマークを、閲覧者は投票を!
-
要望的には、このあたりの話であろうかと思います。
しかし現状の仕様ではファイルを分ける以外の方法が無いので、Partial Class なり拡張メソッドなりで、別ファイルに追いやるしか選択肢が無いでしょう。
もしくは、プロジェクトのプロパティの [コンパイル] タブの警告構成で、遅延バインディングを「警告」通知にすることでお茶を濁すとか。
Dim o As Object = CreateObject("ADODB.Connection") #Disable Warning BC42017 MsgBox(o.ConnectionString) 'これはOK #Enable Warning BC42017 MsgBox(o.ConnectionString) 'これは警告
そもそも「Option Strict On にできない理由」というのは、どのような理由なのでしょうか。たとえば Option Strict On にしたうえで、CallByName で回避することを検討してみるとか…。
- 編集済み 魔界の仮面弁士MVP 2018年12月7日 8:46
-
> 現状、やむなく別ファイルに記述してますが、ファイル管理の観点から一つのファイルにまとめたいのです。
たぶん「やむなく別ファイルに記述」以外の方法はないことは分かっているようですが、であれば、ここで聞く必要はないのと思うのですが・・・
- 編集済み 立花楓Microsoft employee, Moderator 2018年12月10日 5:03 一部内容を編集させていただきました。