好的,我在这里完全糊涂了.我有一个班……说MyClass.它有我的类型的另一个类的几个属性,比如MyHelperClass(以及其他属性). 我正在做以下事情: Dim inst As MyClass = New MyClass() With { .p1 = sv1, .
我正在做以下事情:
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的赋值语句,它给出了以下蓝色波浪线错误:
没有为myLib.MyHelperClass和myLib.MyHelperClass类型定义Operator’=’.
我根本没有得到这个错误!我甚至不知道从哪里开始弄明白这一点.救命!
201105.06 0305:
h1类型的签名是List(Of myLib.Address),其中Address是一个非常基本的类,具有典型的地址字段(名称,地址,城市,州,邮政等). getHelperClass的返回类型也是List(Of myLib.Address).
正如SSS在他的回答中暗示的那样,如果我在没有运算符的类上使用它进行相等测试,我会期望=不能以“自然”的方式工作,但是我使用它作为赋值运算符,而不是相等,我看不出任何问题.我期待将getHelperClass的结果分配给h2.但相反,它告诉我=没有为类型定义.是否有可能由于某种原因,编译器将其解释为=(EQUALS)而不是=(ASSIGN)?
至于评论这条线并且它发生在第一条线上,我需要等到明天我回到办公室检查一下.会报告回来.
啊,是的,抱歉没有正确阅读你的OP.必须将作业误解为比较.也许你错过了一个逗号?例如,在声明“a = b = c”中,第一个等号是赋值,第二个是比较.