好吧,我在这里很困惑。我有一堂课……说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)
?
至于评论那条线并且它发生在第一条线上,我需要等到明天我回到办公室才能检查。会回来汇报的。