好的,我完全糊涂在这里。我有班...说MyClass
。它有我类型的另一个类的几个属性,如MyHelperClass
(以及其他属性)。VB.NET:运算符'='未定义...对于同一类型的变量和对象?
我做了以下内容:
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)
?
至于评论这一行,它发生在第一个,我需要等到明天我回到办公室来检查。将回报。
你可以发布'MyClass'字段'h1'的签名吗? – JaredPar 2011-05-05 22:01:21
这篇文章有助于我们更好地诊断问题。你能为我们提供一些MyHelperClass的代码吗?另外,如果你注释掉.h2行,那么应用程序是编译还是执行它,然后将错误传递给前面的赋值? – IAmTimCorey 2011-05-05 22:02:21
更新了一些更多信息。 – eidylon 2011-05-06 13:46:32