C#与C++对比学习1:基本语法区别
1. C#简单历史:
C#是MS于2000年推出.Net Framework时提供的一种全新的语言,到目前最新的版本已经是C#4.0了,它是.Net Framework4.0的一部分,对应的开发环境为VS2010。从C#的命名就可以猜出这门语言与C、C++之间有某种联系,而其实C#正是从C、C++发展而来的,它的语言与C++非常相似。C++是一门很强大很灵活的OOP语言,但是C++比较复杂(复杂也代表着灵活吧)。C#是目前在.Net平台上唯一能够利用所有.NET特性的语言,这也是C#的使命,它本来就是为.NET框架而诞生的。
由于从C++演化而来,C#的语法与C++很相似,但是还是存在不少的区别。
2.
注释:
C#的注释与C++的注释类似,都可以采用/*...*/ 和//,但是C#还支持///,'///'后面的文本会在编译项目时被提取,并可用于创建文档说明书。为了创建文档说明书,注释必须遵循XML文档规则;
基本数据类型:
在C#中sbyte表示-128~127之间的整数,这与c++众的char一样;C#中byte表示0~255之间的整数,在C++中用unsigned char表示;在C#中,char表示一个Unicode字符,其存储0~65535之间的整数,这与c++的区别比较大。
short表示16位无符号,这与c++相同;ushort表示16位无符号整数;同理有int uint, long, ulong,这都与c++差不多(在c++中没有uint和ulong,分别是unsigned int和unsigned long)。C#中每种数据类型还分别对应.Net框架中的标准类型,也可以看成C#每种类型都是.Net基本数据类型的别名。
C#中的string与c++ stl标准库中string类型类似。在C#中,字符串是引用类型,而其它类型都是值类型。
变量命名规则:
C#中变量命名规则与C++基本一致。在C#中,变量名的第一个字符必须是字母、下划线或@,其后的字母可以是字母、数字或下划线,不能有-,.等。
C#转义序列:C#除了支持C++中基本的例如\" \n等转义字符使用外,还支持用@对整个字符串进行操作,如下,使用@,不需要加
“C:\\windows\\xp” -> @"C:\Windows\xp"
运算符:
C#中的运算符与C++基本保持一致,如也支持前置与后置的++、--;+=、-=、*=、/=、%=等,其运算符优先级也一致。
名字空间域:
名字空间域是个好东西,它可以将代码分别封装到不同的名称空间,以避免命名冲突。在C++中,这不是必须的,而且在很多应用中,经常被忽视;但是在C#中,基本上是必须的,这从MS提供的vc及c##实例就可以看出两者的区别。
在C++中,名字空间域的访问使用域操作符‘::’,如std::vector<int>;而在C#中,使用‘.’,如System.Text(System名称空间是.Net应用程序的根命名空间)。
在C#中,声明名称空间,使用using **,如using System;
在C++中,声明名称空间,使用using namespace **,如using namespace std。