Bri*_*anG 12 .net c# garbage-collection memory-management unsafe
在我们的一个项目中,我们有类似的代码.任何人都可以解释(简单英语)为什么需要修复语句?
class TestClass
{
int iMyVariable;
static void Main()
{
TestClass oTestClass = new TestClass();
unsafe
{
fixed (int* p = &oTestClasst.iMyVariable)
{
*p = 9;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
ili*_*rit 17
它将指针固定在内存中.垃圾收集语言可以自由地在内存周围移动对象以提高效率.这对程序员来说都是透明的,因为它们并不真正使用"普通"CLR代码中的指针.但是,当你需要指针时,如果你想使用它们,你需要在内存中修复它.