さて、私はここで完全に混乱しています。私はクラスを持っています...言うMyClass
。私のタイプの別のクラスのいくつかのプロパティがありますMyHelperClass
(他のプロパティとともに)。
私は次のことをしています:
Dim inst As MyClass = New MyClass() With {
.p1 = sv1,
.p2 = sv2,
.h1 = getHelperClass(a1),
.p3 = sv3,
.p4 = sv4,
.h2 = getHelperClass(a2),
.p5 = sv5,
...
.pN = svN
}
*ここで、.p# はプロパティ、.sv# は有効な値です。.h# は型のプロパティでMyHelperClass
あり、 getHelperClass(a#) はそのクラスのインスタンスを返します。
ここで、h1 の割り当てステートメントが完璧に機能するという奇妙な点があります。問題はありません。ただし、h2 の割り当てステートメントでは、次の青い波線のエラーが表示されます。
Operator '=' is not defined for types myLib.MyHelperClass and myLib.MyHelperClass.
このエラーはまったく発生しません。これを理解するためにどこから始めればよいかさえわかりません。ヘルプ!
201105.06 0305:
h1 の型の署名は ですList(Of myLib.Address)
。ここで、Address
は典型的な住所フィールド (名前、住所、都市、州、郵便番号など) を持つ非常に基本的なクラスです。の戻り値の型getHelperClass
もList(Of myLib.Address)
です。
=
SSSが彼の答えで示唆したように、演算子のないクラスの等価テストに使用している場合、「自然な」方法で動作しないと予想されますが、等価ではなく代入演算子として使用しています。問題はありません。getHelperClass
の結果がh2 に割り当てられることを期待しています。しかし、代わりに=
、 が型に対して定義されていないことがわかります。何らかの理由で、コンパイラがそれを=(EQUALS)
代わりに解釈している可能性はあり=(ASSIGN)
ますか?
その行をコメントアウトし、最初の行でそれが起こっていることについては、明日オフィスに戻って確認するまで待つ必要があります。報告します。