次の方法で共有


BC30068:Expression は値であるため、代入式のターゲットにすることはできません。

ステートメントで式に値を代入しようとしています。 実行時に値を代入できるのは、書き込み可能な変数、プロパティ、または配列要素だけです。 次の例では、このエラーがどのように発生する可能性があるかを示しています。

Dim yesterday As Integer
ReadOnly maximum As Integer = 45
yesterday + 1 = DatePart(DateInterval.Day, Now)
' The preceding line is an ERROR because of an expression on the left.
maximum = 50
' The preceding line is an ERROR because maximum is declared ReadOnly.

同様の例は、プロパティや配列要素にも当てはまる可能性があります。

間接アクセス。 値の型による間接アクセスによって、このエラーが発生することもあります。 次のコード例を考えてみます。ここでは、Location 経由で間接的にアクセスすることによって、Point の値を設定しようとしています。

' Assume this code runs inside Form1.
Dim exitButton As New System.Windows.Forms.Button()
exitButton.Text = "Exit this form"
exitButton.Location.X = 140
' The preceding line is an ERROR because of no storage for Location.

前の例の最後のステートメントは、Location プロパティによって返される Point 構造体の一時的な割り当てのみを作成しているため、失敗します。 構造体は値の型であり、一時的な構造体は、ステートメントの実行後に保持されません。 この問題を解決するには、Location の変数を宣言して使用します。これにより、Point 構造体のより永続的な割り当てが作成されます。 次の例に、前の例の最後のステートメントを置き換えることができるコードを示しています。

Dim exitLocation as New System.Drawing.Point(140, exitButton.Location.Y)
exitButton.Location = exitLocation

エラー ID: BC30068

このエラーを解決するには

  • ステートメントで式に値を代入している場合は、式を 1 つの書き込み可能な変数、プロパティ、または配列要素に置き換えます。

  • ステートメントで値の型 (通常は構造体) を介して間接的にアクセスしている場合は、値の型を保持する変数を作成します。

  • 変数に適切な構造体 (またはその他の値の型) を割り当てます。

  • 変数を使用してプロパティにアクセスし、それに値を代入します。

関連項目