gpt4 book ai didi

C# 破解 : assignment to "this"

转载 作者:太空狗 更新时间:2023-10-29 21:17:43 26 4
gpt4 key购买 nike

<分区>

C#初学者都知道class是引用类型,struct是值类型。建议将结构用作简单存储。它们也可以实现接口(interface),但不能从类派生,不能发挥基类的作用,因为它们具有相当“值”的性质。

假设我们阐明了一些主要差异,但有一个让我难以忘怀。看看下面的代码:

public class SampleClass
{
public void AssignThis(SampleClass data)
{
this = data; //Will not work as "this" is read-only
}
}

这很清楚 - 当然我们不允许更改对象自己的指针,尽管在​​ C++ 中这样做是一种简单的做法。但是:

public struct SampleStruct
{
public void AssignThis(SampleStruct data)
{
this = data; //Works fine
}
}

为什么有效?它看起来像 struct this 不是指针。如果是真的,上面的分配是如何工作的?有自动克隆的机制吗?如果结构中有 class 会怎样?

classstruct this 的主要区别是什么?为什么会这样?

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