(1)数组
Delphi : MyMatrix[2,5] 等价于 MyMatrix[2][5]。
var
// 静态数组
a1: array [0 .. 1, 0 .. 2] of Integer = ((0, 5, 0), (1, 1, 1));
// 动态数组
a2: array of array of Integer;
begin
// Delphi 规则数组
Writeln(a1[0, 1]); // 5
Writeln(a1[0][1]); // 5
// Delphi 交错数组
SetLength(a2, 2);
SetLength(a2[0], 2);
SetLength(a2[1], 5);
a2[0][0] := 1;
a2[0][1] := 2;
a2[1][0] := 3;
a2[1][1] := 4;
a2[1][2] := 5;
a2[1][3] := 6;
a2[1][4] := 7;
Writeln(a2[1, 3]); // 6
Writeln(a2[1][3]); // 6
Readln;
end.
C# : MyMatrix[2,5] 表示规则数组; MyMatrix[2][5]表示交错数组。
// C# 规则数组
int[,] a1 = new int[2, 3] { { 0, 5, 0 }, { 1, 1, 1 } };
Response.Write(a1[0, 1]); //5
// C# 交错数组
int[][] a2 = new int[2][];
a2[0] = new int[] { 1, 2 };
a2[1] = new int[] { 3, 4, 5, 6, 7 };
Response.Write(a2[1][3]); //6
共同点:数组是由相同类型的(称为基础类型)、经过索引的元素组成的聚集。
不同点:Delphi 数组可以静态分配内存,也可以动态分配;C# 数组都是动态分配的引用类型。
(2)运算符优先级
Delphi :and 高於 or 高於 =
C# : == 高於 && 高於 ||