当前位置:  开发笔记 > 编程语言 > 正文

C#中的固定语句

如何解决《C#中的固定语句》经验,为你挑选了3个好方法。

在我们的一个项目中,我们有类似的代码.任何人都可以解释(简单英语)为什么需要修复语句?

class TestClass
{
    int iMyVariable;
    static void Main()
    {
        TestClass oTestClass = new TestClass();
        unsafe
        {
            fixed (int* p = &oTestClasst.iMyVariable)
            {
                *p = 9;
            }
        }
    }
}

ilitirit.. 17

它将指针固定在内存中.垃圾收集语言可以自由地在内存周围移动对象以提高效率.这对程序员来说都是透明的,因为它们并不真正使用"普通"CLR代码中的指针.但是,当你需要指针时,如果你想使用它们,你需要在内存中修复它.



1> ilitirit..:

它将指针固定在内存中.垃圾收集语言可以自由地在内存周围移动对象以提高效率.这对程序员来说都是透明的,因为它们并不真正使用"普通"CLR代码中的指针.但是,当你需要指针时,如果你想使用它们,你需要在内存中修复它.



2> Blair Conrad..:

该固定语句将"脚"的变量在内存中,使得垃圾回收器不会收集周围移动时它.如果它确实移动了变量,指针将变得无用,当你使用它时,你将尝试访问或修改你不想要的东西.



3> Joel Coehoor..:

你需要在指针算术的任何地方使用它,以防止垃圾收集器在你身上移动它.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有