相关疑难解决方法(0)

使用TArray <T>而不是T的数组的原因是什么?

我迁移遗留Delphi应用程序到德尔福XE2,我想知道如果有一个很好的理由,以取代定义为数组Array of MyTypeTArray<MyType>.所以问题是TArray<T>使用的优缺点是什么,而不是MyType数组?

delphi delphi-xe2

30
推荐指数
3
解决办法
2万
查看次数

为什么两个别名的"字符串数组"处理不同?

在Pascal中有两种类型声明:

  • 类型别名:类型NewName = OldType
  • 类型创建:类型NewType = type OldType

前者只是创建方便的速记,如C中的typedef.别名是彼此兼容的,与原始类型兼容.创建的类型是故意不兼容的,并且在没有明确和不安全的情况下通过类型转换不能混合.

var
  nn: NewName; nt: NewType; ot: OldType;
...
  nn := ot; // should work
  nt := ot; // should break with type safety violation error.

  nt := NewType(ot); // Disabling type safety. Should work even if 
  // it has no sense semantically and types really ARE incompatible.
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这些是Pascal基础知识.

现在让我们看一个特定类型和两个别名:

  • System.Types.TStringDynArray = 字符串数组 ;
  • System.TArray <T> = T的数组 ;
    • 特别是这意味着 TArray <string> = 字符串数组 ; …

delphi generics

12
推荐指数
2
解决办法
2334
查看次数

标签 统计

delphi ×2

delphi-xe2 ×1

generics ×1