A代表C++,B代表C#
一、变量
1.A:char unsigned char B:sbyte byte
A:unigned short/int/long B:ushort uint ulong
B:中的char变为unicode编码长度(int16)
A: char[ ] B:string
2.B浮点数多了一种decimal的类型
3.定义枚举类型时
A:enum _myenum{e1,e2}
B: enum _myenum : int/byte{e1,e2} _myenum后多了个枚举值的存储类型
使用时 A:_myenum em=e1;
B: _myenum em=_myenum.e1;
4.定义结构体
结构体
A: struct _mystruct{type A;type B}
B:struct _mystruct{public typeA;public type B}每个成员前面多了个访问方式
5.数组
A: int a[ ]={1,2,3}; int *a=new int [3];
B: int[ ] a={1,2,3}; int a=new int[3] {1,2,3}
实际上B中的数组有类似于容器的特性,例如想知道它的
大小可以这样 int size=a.Length();
多维数组
A:int a[ ][ 2][ 3];
B int [,,] a; int[,] a=new int[1,2];
B还引入了锯齿数组的概念(jagged array),每行可以有不同的元素。
声明数组的数组
int [ ][ ] jaggedIntArray={
new int[ ]{1,2 },
new int[ ]{3,4},
new int[ ]{5}
};
6.字符串
B:str.ToCharArray()可以将字符串转成字符
C++与C#中的字符串,个人以为更类似于类的概念。
2.B:foreach()
用法:for(int myint in a){ }
二、函数调用
1.B:引入参数数组,调用含有参数数组的函数时,只需要类型相同,个数不受限制。
2.引用参数
A:使用符号'&',放在参数类型后
B:使用关键字 ref ,放在参数类型前
3. B:可以输出参数,使用关键字out
4.B中引入结构函数定义,即在结构体中定义函数
eg : struct customerName
{
public string firstName,lastName;
public Name()
{
return firstName + ' '+lastName;
}
}
5.B中有关于按引用重载
可以在实际调用函数时直接在引用的参数前ref
但是C++中,两个函数一个是参数按引用的情况,一个是直接值传递的形式,使用时,将无法区分。