为什么这个类是只读的?

4
我尝试定义一个类。当我使用赋值操作符时,出现了问题。
this = blah blah

编译器报告“这是只读的”

当我将类更改为结构体时,它看起来很好,有什么想法吗?


3
@Killercam,类的定义并不相关。问题在于为什么在类中的this不能被赋值。 - Anthony Pegram
5
"this" 是指当前类的实例。从同一个对象中将对象更改为其他内容是没有意义的。 - Ivan Pintar
3
你试图让一个苹果变成香蕉,这本来就没有意义,你无法让一个对象的实例变成其他东西。 - Alex
2
@Killercam,这与受保护、内部或访问修饰符无关。这个问题已经足够完整了。 - Anthony Pegram
2
@Killercam - this = blahblah 只能在包含类中使用,因为 this 是一个关键字,不是有效的变量名。 - Lee
显示剩余4条评论
1个回答

22
在类中,this 指的是引用;你不能重新分配自己的引用,但可以为当前实例分配字段等。
在结构体中,this 指的是值本身。当你分配this时,就像分配给任何值类型的变量/参数一样,它会将所有字段复制到顶部(作为内存复制)。虽然这是可能的,但在现实开发中很少见。或者,与类一样,您可以逐个分配每个字段。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接