.NET中struct和class之间有什么区别?
几个月前有人问我这个问题,我无法详细解释.C#中的引用类型和值类型有什么区别?
我知道,价值类型int,bool,float,等和引用类型delegate,interface等等.或者,这是不对的,太?
你能以专业的方式向我解释一下吗?
下面的代码是有效的,"Particle"是类"ParticleSystem"的一个实例.
"Particle.emission"是一个get-only属性返回结构"ParticleSystem.EmissionModule"
"em.rate"是一个属性,类型是struct"ParticleSystem.MinMaxCurve"
ParticleSystem.EmissionModule em = Particle.emission;
em.rate = new ParticleSystem.MinMaxCurve(5);
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么上面的代码可以改变"粒子"实例中的速率?
注意struct不是引用,因此不能直接更改,否则会导致CS1612
目前,我的猜测是结构"ParticleSystem.EmissionModule"存储了一些可以链接或与原始"粒子"实例相关的引用?