12

誰かがこのエラーを修正するのを手伝ってくれますか?

Option Strict On は遅延バインディングを許可しない

エラーの原因となっているコードは次のとおりです。

Dim SF6StdData As BindingSource = New BindingSource() 
' ...
If StrComp(SF6StdData.Current("O2AreaCts").ToString, "") = 0 Then
    AreaCts(3) = 0
Else
    AreaCts(3) = Convert.ToDouble(SF6StdData.Current("O2AreaCts").ToString)
End If

エラーが発生しないようにコードを書き直す必要があります。プロジェクトのプロパティで Option Strict を Off に設定することでこれを修正できることはわかっていますが、実際にはそうしたくありません。他の方法はありますか?

4

4 に答える 4

15

がオンの場合、遅延バインディングは許可されませんOption Strict。遅延バインディングを実行する必要がある場合、唯一のオプションは、リフレクションを使用するか、シャットオフすることOption Strictです。Option Strictただし、1つの節約のメリットは、プロジェクト全体を停止する必要がないことです。Option Strict Offプロジェクト用にオンのままにして、遅延バインディングを実行する必要があるコードファイルの先頭に行を追加するだけです。これは優れたソリューションではありませんが、プロジェクト全体に影響を与えるよりはましです。

また、Option Strictファイルの先頭に配置されたものはそのファイルにのみ適用されるため、クラス全体に適用する必要はありません。Partial Classクラスを複数のファイルに分割する場合はOption Strict、それらのファイルごとに異なる設定を行うことができます。たとえば、クラスの大部分を。を使用してファイルに入れ、次に1つのメソッドをを使用して別のファイルにOptions Strict On入れると、その1つのメソッドのみが大まかにコンパイルされます。クラスの残りの部分は、厳密なルールを使用してコンパイルされます。Partial ClassOption Strict Off

于 2012-09-11T18:11:01.933 に答える
3

BindingSourceを強く型付けされたデータソースとして機能させる必要があります。ドキュメントの備考を参照してください:http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.aspx

于 2012-09-11T18:23:31.773 に答える