gpt4 book ai didi

VB.NET:运算符 '=' 未定义...用于相同类型的变量和对象?

转载 作者:行者123 更新时间:2023-12-01 01:29:10 25 4
gpt4 key购买 nike

好的,我在这里完全困惑。我有一个类...说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) ?

至于注释掉那条线并且它发生在第一条线上,我需要等到明天我回到办公室再检查一下。会回来汇报的。

最佳答案

啊,是的,抱歉没有正确阅读您的 OP。该分配必须被误解为比较。也许你错过了一个逗号?例如在语句“a = b = c”中,第一个等号是赋值,第二个是比较。

关于VB.NET:运算符 '=' 未定义...用于相同类型的变量和对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com