值类型如何实现ref类型

Ami*_*mit 5 c# oop

我遇到了一个值类型正在实现ref的scenerio.类型.

只是想知道怎么可能(幕后的是什么?)

struct是一个值类型,接口是ref.类型但结构可以实现接口没有任何错误...

有什么想法吗?提前致谢

Mar*_*ell 9

实际上,它同时以两种不同的方式实现.

首先,任何值类型都可以装入引用类型的对象实例中.这个盒子是由运行时按需发明的,它将以你期望的方式实现接口 - 即盒子将实现value-type实现的任何接口.

但是,CLI也允许"受限制的呼叫".约束调用将虚拟调用转换为静态调用,但仅限于值类型通过覆盖或接口实现实现实例方法的情况(否则它由JIT实现为虚拟调用).特别是泛型广泛使用受约束的调用(受限制的操作码与泛型一起添加,正是出于这个原因).

  • @Gjeltema我希望能激励你添加更多细节,而不是删除你的答案:( (2认同)