Dumb
I am not like them , but I can pretend

1。 析构函数 - CSharp中是在紧靠GC回收无用单元之前调用,而C++是在对象离开作用域时调用,两者有很大不同,因为GC何时回收是随机得,当它发现内存不足,或者CPU空闲或其他合适时间(什么是合适时间?我也不知道)就会调用,所以CSharp中的析构函数何时调用也是无法预知得. 那么,既然GC可以回收无用单元,CSharp中得析构函数是否无用呢?当然不是,比如说可以通过在类中定义静态变量,构造函数中++,析构函数中--,得到它当前得对象数目等等。

 2。数组 - CSharp中数组是作为对象来创建得以作为返回,所以定义一个数组,就是定义一个引用变量,当然它就可类型了。不同于一般的对象,数组可以通过直接赋值的方式来分配存储空间而隐藏NEW运算符。
不同于C++,CSharp中的数组上下限是严格控制的,超出会产生IndexOutRangeException异常。

 3。String - 同样,它也是对象,是引用类型。但不同于一般的引用类型,判断相等时,它所判断的不是引用是否指向相同对象,而是对字符串的内容本身进行比较。C++ 中它则是字符的数组。

 

posted on 2004-10-27 11:52  feng  阅读(2663)  评论(0编辑  收藏  举报