gpt4 book ai didi

delphi - 如何在 Delphi 中声明自定义类型?

转载 作者:行者123 更新时间:2023-12-03 18:04:14 25 4
gpt4 key购买 nike

我想声明一个自定义数据类型以获得更好的代码可读性。目的是保持此类型不受任何与其他 AnsiString 的干扰。但是Delphi好像不支持?

type
TKMLocaleCode = type AnsiString;

... snip ...

procedure A;
var
A,B: TKMLocaleCode;
C: AnsiString;
begin
A := 'eng'; //<<-- I expect an error here
A := C; //<<-- I expect an error here too

B := TKMLocaleCode('eng'); //<<-- I expect no error here
end;

是否可以在 Delphi 中声明这样的自定义类型?

最佳答案

你不应该在你做的地方出错,但你最初的技术无论如何也不会实现你的目标。请注意 TFileName 是一种与您的字符串类型截然不同的字符串类型,但它可以在任何需要普通字符串的地方使用。 type声明更多的是为一个类型建立不同的RTTI,以便在设计时可以用于不同类型的属性编辑器。

要真正创建一个独特的类型,请尝试声明一个包含字段的记录来保存您的数据。记录与其他任何东西都不兼容,即使它们与另一种类型具有相同的结构。要使您的记录与同一类型的其他值进行比较,请通过在记录声明中提供 EqualNotEqual 方法来重载比较运算符。要允许通过类型转换而不是通过普通赋值创建不同类型,请提供 Explicit 运算符,而不是 Implicit

关于delphi - 如何在 Delphi 中声明自定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com