老调重弹!请教下关于C#里能完全替代指针的办法! unsafe?是不是真的跟名字一样?是真的不安全吗?数组?直接操作数组是不是速度没有C++里用指针快? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unsafe其实如果叫unmanagement也许更容易理解。安全不安全是写程序的人的水平决定的。 和语法无关。unsafe其实的意思就是说, 已经快脱离托管代码的范畴了,微软觉得有点“失控”, 得“后果自负”了 是这么个safe。不是安全性上的safe。至于数组和C++的指针 这个没法比吧? unsafe,这部分操作的内存区域自己对安全负责是的 看楼主的需要是效率第一,那就不该用C#了,用C++讲运行效率,用C#讲开发效率,两者着眼点不同 C#里,本来就能够完全替代指针啊,你看C#里,哪里要需要用到指针,如果你很喜欢C++/c的指针就别用C#,何苦呢 如果用 C# 编写托管应用,在互作的场合会涉及到一些指针,不过那个有专门的类供你使用(InteropServices下面),没有必要使用 unsafe 代码,如果出现了大量的指针,说明出了问题.来之, 安之. 呵呵 你这描述很传神啊。哈哈。unsafe 是指没有系统为你提供 托管堆管理 ,垃圾回收,类型检查其实数组的速度已经很快了,没必要为那一点速度抛弃clr中(托管堆管理 ,垃圾回收,类型检查)这么多好处 哈哈,对对.就是这样. 指针这个东西,一开始很炫,结果后来因为指针这个东东太容易产生bug了,所以后悔了.... 指针,是个很模糊的概念。指针就是一个内存地址的值。看你如何用。c#中指针操作就是用unsafe/fixed关键字,反来返去的也会消耗cpu和内存,并不划算的。看你实际需要了。IntPtr是c#中处理指针、句柄相关内容的类,支持64位系统。Marshal类也提供了对象到指针的方法,返回的是一个IntPtr对象。当然逆方法也有。都这个类中。 没有指针性能差得要死,遇到算法性能要求高的场合,(音频,图片编解码等),代码满足不了要求,什么clr中优点(托管堆管理 ,垃圾回收,类型检查),全都是浮云! 删除IE临时文件夹下的所有文件 请教多版本合一的软件制作思路 C#动态添加toolstrip项 FileStream 相对文件路径的问题 数据库链接问题 FpSpread如何保存数据问题? Form窗体显示问题 请教:c#中处理oracle存储过程返回自定义型的 一个自己开发的票据打印系统 WINFORM中DATAGRID问题 怎样读取excel到dataGridView中? DialogResult问题
安全不安全是写程序的人的水平决定的。 和语法无关。unsafe其实的意思就是说, 已经快脱离托管代码的范畴了,微软觉得有点“失控”, 得“后果自负”了 是这么个safe。
不是安全性上的safe。至于数组和C++的指针 这个没法比吧?
是的
在互作的场合会涉及到一些指针,
不过那个有专门的类供你使用(InteropServices下面),
没有必要使用 unsafe 代码,如果出现了大量的指针,
说明出了问题.来之, 安之.
哈哈,对对.就是这样. 指针这个东西,一开始很炫,结果后来因为指针这个东东太容易产生bug了,所以后悔了....
IntPtr是c#中处理指针、句柄相关内容的类,支持64位系统。
Marshal类也提供了对象到指针的方法,返回的是一个IntPtr对象。当然逆方法也有。都这个类中。