上一页 1 ··· 4 5 6 7 8 9 下一页
摘要: 为了赶紧把首页刷新顺溜,给大家传几个新闻吧。http://www.oschina.net/news/2415前一阵子关于Mono是否进Debian的问题在自由软件世界引起了相当大的争论,其中教父Richard M. Stallman还特别发表声明,劝阻Debian社区莫将Mono引入,否则将会受微软打压。今天GNOME和Mono的老大:Miguel de Icaza向社区传播了一则来自微软的好消息,即微软决定将“社区承诺协议“应用至C#和CLI。Mono是一个.NET的开源实现,它包含了.NET的主要规格,并拥有自己实现部分(如GTK#)。因为其兼顾了开发效率和运行速度,越来越多的自由软件使用 阅读全文
posted @ 2009-07-08 21:25 DiggingDeeply 阅读(1799) 评论(11) 推荐(0) 编辑
摘要: 今天早上匆匆写了篇文章,上班时间也找了找资料,也没找到任何有效性的说明,所以还得自己来。还是先上一段测试代码:[代码]比较简单,就是在不同的时候打印几个字符串。我看了看IL,在Foo 的代码里发现了一个特殊的指令,用ILDASM dump出IL:[代码]leave.s IL_0028,这个指令是什么意思呢?查了查msdn:[代码]看了看,也不是很明白,到底是怎么执行呢?我想到了一个Tool,sharpdevelop,一个开源的IDE,记得好像能调式IL,下了一个安装,安下断点,调式发现leave.s实际上执行finally里的代码,然后再到IL_0028;我试着将IL_0028改为IL_002 阅读全文
posted @ 2009-07-03 21:15 DiggingDeeply 阅读(2794) 评论(16) 推荐(0) 编辑
摘要: 在windows中,每个线程默认的栈大小是1M,托管线程也一样。在32位windows中,用C#在系统中最多可以创建多少个线程呢?答案稍后说。大家都知道try...catch...finally是用来控制异常的流转,一般说来finally是最后一班岗哨,问100个人,99个肯定说一定会执行。是的,一般来讲确实是能执行到的,原因是什么呢?比如在try或catch里return之后为什么还能执行到finally呢?答案是因为return只是把返回值放入相应的地方(一般来讲是寄存器),准备返回;在一个函数返回之前,也就是ret指令调用之前,还有一些代码需要执行,就是清空堆栈(弹出入栈的压入的参数,函 阅读全文
posted @ 2009-07-03 07:30 DiggingDeeply 阅读(7783) 评论(36) 推荐(0) 编辑
摘要: 今天上园子,看到了一篇C#中for和foreach循环的性能 ,对其中的三个 int[] foo = new int[100]; 1, foreach (int i in foo) Console.WriteLine(i.ToString()); 2,for(int index=0;indexfoo.Length;index++) Console.WriteLine(foo[index].ToString()); 3,int len=foo.Length; for(int index=0;indexlen;index++) Console.WriteLine(foo[index].ToSt 阅读全文
posted @ 2009-06-20 21:40 DiggingDeeply 阅读(2047) 评论(14) 推荐(0) 编辑
摘要: 引子:今天早上早早醒来无事,上园子依次看到[C#] int与System.Int32有什么区别 理解C#中的System.Int32和int:并非鸡和鸡蛋 异或运算的一个问题,疑似C#编译器的Bug?其中最后一篇 引起了我的好奇,难道CSC还真有bug?我来看看。其实就是很简单的一个程序,[代码]就是运行最后的结果是:0,2不是预期的9,2,后面的评论只是说a ^= (b ^= (a ^= b))相当于2 ^= (9 ^= (2 ^= 9)),具体的也没说明具体的原因是什么。首先说明,托管代码在运行,主要用到3种形式的内存:1.Managed Heap:动态内存分配的地方,由GC来管理,整个进 阅读全文
posted @ 2009-06-14 09:53 DiggingDeeply 阅读(2603) 评论(17) 推荐(0) 编辑
摘要: 固定的和活动的变量&和fixed将变量分为两类:固定的和活动的。固定的变量永久的存在并不会被GC的操作影响。(例如局部变量,值参数和间接指针)活动的变量会被GC重新分配位置或是释放(例如对象中的字段,基础数据数组)。&取固定变量的地址是没有限制的。但是活动变量容易受GC的影响,其地址只能通过fixed来获得,并且地址仅会在整个fixed语句的周期持续有效。静态字段也是活动变量。还有标记为ref或out的也是活动变量,即使这个参数是传递给固定参数的。最后,通过间接指针引用的变量总是固定变量。指针转换在不安全上下文中,下面的转换是隐式的:l 从任何指针类型到void*l 从null到任何指针类型除 阅读全文
posted @ 2009-06-11 15:53 DiggingDeeply 阅读(1953) 评论(9) 推荐(0) 编辑
摘要: 由于机器上IM安装较多,就去http://www.pidgin.im/下了一个pidgin,连上了msn,gtalk还有QQ,比较爽,但是近来发现当打开对话窗口时,选中选择字体老是造成程序crash,无奈之下就不只好不改字体。等了3个pidgin新版本,问题依旧。我天真的认为总会被官方fix的。废话不说,上windbg,开启pidgin,用windbg attach上,一切安好。继续g,依次选中字体,结果问题出现了:省略若干加载模块。。。。。。(1ac4.2890): Access violation - code c0000005 (first chance)First chance exc 阅读全文
posted @ 2009-06-10 22:08 DiggingDeeply 阅读(2170) 评论(3) 推荐(0) 编辑
摘要: 主要参考的是C# Language Specification Version 3.0。 引子 C#是.Net平台上主流的开发语言,和经典的C/C++不同的是,C#所编写的代码是托管代码,由GC来管理内存,省去了new/delete的烦恼。但是,由于某些特殊的要求,比如和底层的操作系统接口,访问内存映射设备或者实现对时间要求苛刻的算法时,C#提供了不安全代码。 阅读全文
posted @ 2009-06-10 14:21 DiggingDeeply 阅读(2545) 评论(5) 推荐(0) 编辑
摘要: 引子:最近想写一些文章,但是每每到中间就放弃了,我觉得写技术文章不难,能把自己脑子想的用文字描述出来并让人看明白很难,两个字:”缺练“。回归正题,给大家整两个小题目,供大家把玩。1.汇编翻译为C语言这是段函数汇编源码,请把它翻译为C代码。[代码]我翻译成C语言是:[代码]再用VS2008反编上边的C代码:[代码]您猜对了吗?2.高阶C#include "stdio.h"int main(){int a[5]={7,8,9,10,11};int *ptr1=(int *)(&a+1);int *ptr2=(int *)((int )a+1);printf("%x,%x",ptr1[-1],*pt 阅读全文
posted @ 2009-06-09 08:58 DiggingDeeply 阅读(2015) 评论(10) 推荐(0) 编辑
摘要: 最近好多人都参与了有道的比赛,其中第2题园子里有很多人给出了程序,在这里我也小谈一下我的想法。题目要求:双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0a=b。对于任何一个指定的 int n, 返回所有的小于等于n的双倍超立方数的个数。 DefinitionClass: TwiceSuperCubic Method: count Parameters: int Returns: int Method signature: int count(int n) (be sure your method is public) Constraints 阅读全文
posted @ 2009-06-03 22:22 DiggingDeeply 阅读(1610) 评论(7) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 下一页