Ily*_*huk 6 c# struct class this
所有C#初学者都知道这class是一个引用类型并且struct是一个值.建议使用结构作为简单存储.它们也可以实现接口,但不能从类派生,也不能起到基类的作用,因为它具有相当"价值"的性质.
假设我们对主要差异有所了解,但有一个困扰我.看看下面的代码:
public class SampleClass
{
public void AssignThis(SampleClass data)
{
this = data; //Will not work as "this" is read-only
}
}
Run Code Online (Sandbox Code Playgroud)
这很明显 - 当然我们不允许改变对象自己的指针,尽管在C++中这样做是一种简单的做法.但:
public struct SampleStruct
{
public void AssignThis(SampleStruct data)
{
this = data; //Works fine
}
}
Run Code Online (Sandbox Code Playgroud)
它为什么有效?它确实看起来struct this不是一个指针.如果是真的,上面的分配如何工作?有自动克隆的机制吗?如果class结构内部会发生什么?
什么是主要的差异class和struct 这个,为什么它以这样一种方式表现?