社区
.NET Framework
帖子详情
被遗忘的UnSafe?
Joe-xXx
2010-02-21 05:24:52
今天用C#写了一段Unsafe Code,主要是对bitmap的bitdata进行操作。通过与利用win32API进行同样操作的代码进行效率,发现其速度已相当接近。但曾经有人提示过:不要频繁使用UnSafe Code。出于这个考虑,Google了一下,得到了一个答案:禁用公共运行时(CLR)的代码验证功能,这个真是一头雾水!!请各位指教下。
还有就是如果频繁使用或程序中大量调用Unsafe Code,会有什么后果或后遗症?
...全文
181
10
打赏
收藏
被遗忘的UnSafe?
今天用C#写了一段Unsafe Code,主要是对bitmap的bitdata进行操作。通过与利用win32API进行同样操作的代码进行效率,发现其速度已相当接近。但曾经有人提示过:不要频繁使用UnSafe Code。出于这个考虑,Google了一下,得到了一个答案:禁用公共运行时(CLR)的代码验证功能,这个真是一头雾水!!请各位指教下。 还有就是如果频繁使用或程序中大量调用Unsafe Code,会有什么后果或后遗症?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Joe-xXx
2010-02-23
打赏
举报
回复
哦~~在dotnet下,数组越界也是在实际的运行过程中才会抛出,关闭了代码验证,就是发生缓冲区溢出错误或其他错误?!
blue_apple2006
2010-02-23
打赏
举报
回复
CLR本身有很多验证,比如数组越界之类的。
如果定义为unsafe,则会想C语言一样,没有越界验证。越界了也可以继续运行,造成缓冲区溢出等错误。
Joe-xXx
2010-02-22
打赏
举报
回复
公共运行时(CLR)的代码验证功能,来个高手详解下吧~~求教求教
Joe-xXx
2010-02-21
打赏
举报
回复
先谢谢各位,6楼解释得蛮好的啊~能详细解释下:公共运行时(CLR)的代码验证功能!
tkscascor
2010-02-21
打赏
举报
回复
操作得当的话, 效率会提升很高。
所谓的不安全代码。 就是CLR编译的,不负责这段代码的安全。。 比如内存释放什么的。
就好像你给我一段代码, 我给你编译,
如果是正常C#代码, 在编译的时候我会验证代码是否正确,内存回收什么的,
如果指明unsafe, 说明我在编译的时候不负责对它的编译,不验证他的内存回收。 并不是代码不安全, 而是。net 不能保证代码是安全的。 这样解释,是否理解。。。
PandaIT
2010-02-21
打赏
举报
回复
不推荐使用!!如果代码回到1010时代会是什么样子??
Justin-Liu
2010-02-21
打赏
举报
回复
指针在c#中是不提倡使用的,有关指针的操作被认为是不安全的(unsafe)。
Joe-xXx
2010-02-21
打赏
举报
回复
想知道为什么不安全啊?主要是怕c/c++的野指针之类的
段传涛
2010-02-21
打赏
举报
回复
指针在c#中是不提倡使用的,有关指针的操作被认为是不安全的(unsafe)。
用的时候要做修改
在右侧的solution Explorer中找到你的项目,在项目图标(绿色)上点右键,选最后一项properties,然后在Build标签页里把Allow unsafe code勾选上。
bwangel
2010-02-21
打赏
举报
回复
依你要实现的功能,似乎并不需要unsafe, unsafe主要是指指针操作.
mysqli被遗弃了_在您的申请中被
遗忘
的权利
您可能已经听说过“被
遗忘
的权利”,如果您要求Google删除与您有关的搜索结果 ,则根据此权利。 根据欧盟新的通用数据保护条例,被
遗忘
的权利意味着数据主体(用户)可以请求从任何数据控制者 (包括网站)删除其...
在您的申请中被
遗忘
的权利
您可能已经听说过“被
遗忘
的权利”,如果您要求Google删除与您有关的搜索结果 ,则根据此权利。 根据欧盟新的通用数据保护条例,被
遗忘
的权利意味着数据主体(用户)可以请求从任何数据控制者 (包括网站)删除其...
一些会
遗忘
的代码属性
多用于tableView的选中 UIViewController* XXX=[[NSClassFromString([_viewControllerArray objectAtIndex:...代码块里面需要些self的话就在外面声明__
unsafe
_unretained typeof(self)superself = self;代替se...
完美解决C语言出现“C4996 ‘scanf‘: This function or variabl”的问题
问题描述:以下是一维数组的手动输入遍历 #include <stdio.h> int main() { int nums[10]; int i; //从控制台读取用户输入 ...,不要
遗忘
哦 } //依次输出数组元素 for (i = 0; i < 10; i++) {
Sun过去的世界中的JDK 11和代理
使用JDK 11后,就sun.misc.
Unsafe
的第一种方法。 其中, defineClass方法已删除。 代码生成框架通常使用此方法在现有的类加载器中定义新的类。 尽管此方法易于使用,但它的存在也使JVM本质上不安全,正如其定义类的...
.NET Framework
17,740
社区成员
24,334
社区内容
发帖
与我相关
我的任务
.NET Framework
.NET技术 .NET Framework
复制链接
扫一扫
分享
社区描述
.NET技术 .NET Framework
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章