C#数据类型分为两类:值类型和引用类型
下文仅介绍部分数据类型
const double pi = 3.14;
常量是在编译时设定其值,在对程序进行编译时把所有const常量全部替换为常数。
var
来表示类型,称为匿名类型。在使用var
类型时,虽然不是显式声明,但在编译期已经确定了其变量类型。c#中的var
关键字实际上类似于c++中的auto
关键字。
表示可以为null值的类型,例如int?
读作可以为null的Int32类型,就是说可以将其赋值为任一个32位整数值,也可以将其赋值为null。
int? age = 0;int? n = null;double? d = 4.108;bool? isFlag = false;
在处理数据库和其他包含不可赋值的元素的数据类型时,可以为null的值类型特别有用。
c# 中的多维数组实际上是张量tensor
。
示例:
int [] arr = {1, 2, 3, 4, 5};int len = arr.Lengthfor(int i = 0; i < len; ++i){ Console.WriteLine(arr[i]);}
int [,] arr = { { 1, 2 }, { 3, 4 }, { 5, 6 } };int r = arr.GetLength(0);int c = arr.GetLength(1);for(int i = 0; i < r; ++i){ for(int j = 0; j < c; ++j) { Console.WriteLine(arr[i, j]); }}
int [,,] arr = { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } };int d0 = arr.GetLength(0);int d1 = arr.GetLength(1);int d2 = arr.GetLength(2);for(int i = 0; i < d0; ++i){ for(int j = 0; j < d1; ++j) { for(int k = 0; k < d2; ++k) { Console.WriteLine(arr[i, j, k]); } }}
交错数组
交错数组是一个一维数组,每一个元素又是一个数组对象
// 1. 交错数组, 每个元素是一个一维数组int[][] arr = new int[2][]{ new int[]{ 1, 2, 3, 4, 5, 6 }, new int[]{ 7, 8, 9, 10, 11, 12 }};int len = arr.Length;for(int i = 0; i < len; ++i){ int ll = arr[i].Length; for(int j = 0; j < ll; ++j) { Console.WriteLine(arr[i][j]); }}// 2. 交错数组, 每个元素又是一个二维数组int[][,] arr = new int[2][,]{ new int[,] { { 2, 4 },{ 6, 8 } }, new int[,]{ { 1, 3 }, { 5, 9 } }};int len = arr.Length;for(int i = 0; i < len; ++i){ int r = arr[i].GetLength(0); int c = arr[i].GetLength(1); for(int j = 0; j < r; ++j) { for(int k = 0; k < c; ++k) { Console.WriteLine(arr[i][j, k]); } }}
System.Type tp = typeof(int)
获取类型的Type
对象
检查对象是否为某一个类的实例,返回一个布尔值。
if(o is Class1){ a = (Class1)o;}
x as T
为返回类型为T的x,如果x不为T类型则返回null
Class1 c = b as Class1;if(c != null){ // ...}
foreach(类型 标识符 in 表达式){ 语句序列}// 注意:循环变量是一个只读的局部变量