@[toc]
1.数据类型概述
与c/c++不同的是 整数类型多出了sbyte 和 byte 两种类型 当人大小也非常小占8子节
1.整数类型
sbyte x = 1; //-128~127 byte y = 1; //0~255 short z = 1; //-32768~32767 ushort a = 1; //0~65535 int b = 1; //-2147483648~2147483647 uint c = 1; //0~4294967295 long d = 1; //-9223372036854775808~9223372036854775807 ulong e = 1; //0~18446744073709551615
2.实数类型
与c/c++不同的是多出了 decimal 类型,为了满足高精度的财务和金融计算而引入的,占128子节。
float x = 1; //3.4E+10的负38次方~3.4E+10的38次方 double y = 1; //1.7E+10的负308次方~1.7E+10的正308次方 decimal z = 1; //1.0×10的负28次方~7.9×10的28次方
3.字符类型
char x = 'a'; //0~65535
4.布尔类型
bool x = false; //true false
5.结构类型
注意的是c++与c#不同点
c++的struct 内默认类型是public
而c#的默认类型则是private
所以如果想直接赋值 需要在变量名前加public
public struct wazxy { public int x, y; }
6.枚举类型
我认为没啥用
2.类型转换
由于c#输入进去的类型为string类型,所以如果想读入其他类型,需要调用函数进行转换
推荐Convert类
如:
当然在整数和实数之间可以进行强制转换。
3.运算符与表达式
以下五个均与c++没有什么不一样
1.算术运算符与算术表达式
2.关系运算符与关系表达式
3.赋值运算符与赋值表达式
4.逻辑运算符与逻辑表达式
5.位运算符
不同
typeof运算符作用: 显示类型
new运算符作用: 用来创建对象和调用构造函数
4.数组的声明
类,接口,委托这些东西放到后面几章说
数组的声明有点类似与java,特别要注意一下
1.一维数组
1.声明了数组之后,就必须为数组分配内存,以保存数组的所有元素。数组是引用类型,所以必须给它分配堆上的内存。为此,应使用new运算符,指定数组中元素的类型和数量来初始化数组的变量。
int[] a = new int[10];
赋初值:
int[] a = new int[10]{1,2,3,4,5,6,7,8,9,10}; //或者 int[] a = {1, 2, 3};
2.二维数组
注意在代码中调用某个值的时候是
a[i,j] 一个方括号中用","隔开
int[,] b = new int[2,2]; b[0, 0] = 0; b[0, 1] = 1; b[1, 0] = 2; b[1, 1] = 3; //第二种 int[][] a = new int[2][]; a[0] = new int[] { 1,2 }; a[1] = new int[] { 1,2,3 }; //第三种 int[,] arr1 = new int[2,2] { {12,0 },{ 2,3 } }; int[,] arr2 = new int[,] { { 12, 0 }, { 2, 3 } }; int[,] arr3 = { {12,9},{ 2,3} };
当然出了这些还有很多数组的常用操作,例如sort之类的函数,这里就不一一列举了。
5.集合
当然c#中也有很多已经封装好的数据结构,例如:
1.ArrayList(动态数组)
1.创建 ArrayList list =new ArrayList(); 2.Add (尾端追加) list.Add("a"); 3.Remove (移除元素) list.Remove("a"); 4.Insert (插入元素) list.Insert(3,25); ......
2.Queue(队列)
Queue q=new Queue(); 1.入队 q.Enqueue(1); 2.出队 q.Dequeue(); 3.清空 q.Clear();
3.Stack(栈)
Stack ss=new Stack(); 1.入栈 ss.Push(1); 2.出栈 ss.Pop(); 3.清空 ss.Clear();
6.杂七杂八
1.object类型
接触了object类型
Object 数据类型可以指向任意数据类型的数据,包括您的应用程序识别的任意对象实例。当您在编译时不知道变量可能指向哪种数据类型时,请使用 Object。
感觉类似于C++11里面的auto类型。
2.其他的系统函数
类似于数字类System.Math和System.DateTime等库函数
懒得写了,毕竟一看就会(有手就行)(其实是太懒了)