文章目录
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类型。
当然查了一下 貌似c#中还有 var关键字
var可以理解为匿名类型,我们可以认为它是一个声明变量的占位符。
它主要用于在声明变量时,无法确定数据类型时使用。
使用var定义变量时有以下四个特点:
- 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式: var s; s = “abcd”;
- 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。
- var要求是局部变量。
- 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。
2.其他的系统函数
类似于数字类System.Math和System.DateTime等库函数
懒得写了,毕竟一看就会(有手就行)(其实是太懒了)