Delphi 和 C#的区别

来源:互联网 发布:知乎体验分析报告 编辑:程序博客网 时间:2024/05/19 00:11

(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# :      ==  高於 && 高於 ||