本人毕业近两年来一直从事嵌入式开发,主要使用C语言进行软件开发。对C++的了解也只是完整了看完了《C++ Primer》以及使用MFC做过几个小程序。不管怎么说也算是对C和C++有些基础。
在使用MFC做小软件的时候深刻的体会到了C++做客户端的痛苦,一个很简单的JPEG图片显示都需要用上COM(当然还有其他很多方法,不过我感觉用COM是最简单的一种方法),听闻C#做客户端十分的快捷,而且在未来可以无缝转换到WP7开发。所以痛下决心学习C#。目前在阅读《C#入门经典》一书,同时做一些笔记,笔记主要记载C#和C/C++的不同之处。
一:字符不能当作ASCII码来使用。
比如这样的赋值: char ch = 0x32;在C/C++中是合法的,但是在C#中就是非法的。
二: bool类型赋值只能是true or false不可以是0或1
三:全新的数据类型——十进制类型,关键字decimal.
为什么要decimal,请移步至c#中decimal ,double,float的区别
四:装箱/拆箱
此概念,个人感觉是本章比较重要的概念之一。语言是苍白无力的,下面就代码示例来告诉大家什么是装箱和拆箱
一:装箱
int i = 10;
object obj = i;
上面一段代码就是装箱,下面示例的是拆箱代码
int i = 10;
object obj = i;
int x = (int)obj;
装箱/拆箱其实就是体现的“万物皆对象”的一种概念。注意拆箱也需要遵循类型一致原则。
五:取消了指针,提出“代表”关键字delegate。
身为一名C程序员很难想想没有指针的代码是如何运行的,但是C#确确实实是没有指针的,目前还没有详细了解delegate,不过大致上和指针差不多。
*指针也可以用,但是C#强烈推荐不使用指针,并且如果非要使用指针的话需要加上unsafe告诉编译器这个是类型不安全的。