是否有解决方法,使类运算符适用于内置类型

约翰

我可以使用中间保存记录对字符串使用类运算符。
这样我就可以隐式转换内置类型。

program TestNewStringHelper; 
{$APPTYPE CONSOLE}
uses
  System.SysUtils;
type
  TStringRecord = record
  private
    Data: string;
  public
    class operator Implicit(const a: TStringRecord): Integer; inline;
    class operator Implicit(const a: string): TStringRecord; inline;
  end;

{ TStringRecord }

class operator TStringRecord.Implicit(const a: string): TStringRecord;
begin
  pointer(Result.Data):= pointer(a);
end;

class operator TStringRecord.Implicit(const a: TStringRecord): Integer;
begin
  Result:= StrToInt(a.Data);
end;

var
  input: TStringRecord;
  output: integer;

begin
  input:= '42';
  output:= input;
  WriteLn(IntToStr(output));
  ReadLn;
end.

我想做一些类似的事情:

var
  input: string;
  output: integer;

begin
  input:= '42';
  output:= input;  //Class operator magic
  WriteLn(IntToStr(output));
  ReadLn;
end.

根据在线帮助:

注意:类和记录助手不支持运算符重载。

http://qc.embarcadero.com/wc/qcmain.aspx?d=72253

是否有解决方法,可以在不使用中间类型的情况下实现内置类型的隐式转换?

戴维·赫弗南

记录和类帮助器是扩展现有类型的方法范围的唯一方法。而且助手不允许操作员重载。

您可以在定义类型的同时定义重载运算符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否有解决方法,使类运算符适用于内置类型

来自分类Dev

在多个龟类中使用>运算符是否有解决方法?

来自分类Dev

绑定参数不适用于Firebird 2.0。有没有解决方法?

来自分类Dev

背景尺寸不适用于普通类,是否需要任何解决方法

来自分类Dev

python中是否有适用于数组的二进制或运算符?

来自分类Dev

是否有解决方法可以通过泛型类使用静态方法?

来自分类Dev

是否有解决方法可以通过泛型类使用静态方法?

来自分类Dev

Genson中类元数据的顺序很重要-是否有解决方法?

来自分类Dev

Cassandra中的IN运算符不适用于具有类型集合(映射或列表)的列的表

来自分类Dev

标识符规则是否适用于运算符重载功能?

来自分类Dev

标识符规则是否适用于运算符重载功能?

来自分类Dev

npm publish -f是否有解决方法

来自分类Dev

强制使用mapply是否有解决方法

来自分类Dev

我尝试的Hive插入是否有解决方法

来自分类Dev

Debian文件补全破坏$ _是否有解决方法?

来自分类Dev

QDMLOPNF 128 限制是否有解决方法?

来自分类Dev

BeamSQL 中的“LIKE”是否有解决方法?

来自分类Dev

用于检查字符串中的所有字符是否唯一的 Java 算法不适用于 Hashmap?使用地图运算符有更好的解决方案吗?

来自分类Dev

用于检查类型T的C#接口是否具有运算符/一种检查类型T是否具有运算符的方法

来自分类Dev

在标准(C ++ 11)中,哪里表示余数运算符仅适用于整数类型?

来自分类Dev

Fortran派生类型:重载的赋值运算符不适用于'PARAMETER'属性

来自分类Dev

struct int数据类型不适用于关系运算符

来自分类Dev

instanceof运算符不适用于Class类型变量

来自分类Dev

在标准(C ++ 11)中,哪里表示余数运算符仅适用于整数类型?

来自分类Dev

Ruby运算符重载不适用于自定义类对象

来自分类Dev

将内置类型变量传递给仅具有一个类类型参数的“ +”运算符时,用于自动类型转换的构造函数

来自分类Dev

右移运算符不适用于标志枚举

来自分类Dev

MYSQL <=运算符不适用于9999值

来自分类Dev

scrollTop不适用于2个运算符

Related 相关文章

  1. 1

    是否有解决方法,使类运算符适用于内置类型

  2. 2

    在多个龟类中使用>运算符是否有解决方法?

  3. 3

    绑定参数不适用于Firebird 2.0。有没有解决方法?

  4. 4

    背景尺寸不适用于普通类,是否需要任何解决方法

  5. 5

    python中是否有适用于数组的二进制或运算符?

  6. 6

    是否有解决方法可以通过泛型类使用静态方法?

  7. 7

    是否有解决方法可以通过泛型类使用静态方法?

  8. 8

    Genson中类元数据的顺序很重要-是否有解决方法?

  9. 9

    Cassandra中的IN运算符不适用于具有类型集合(映射或列表)的列的表

  10. 10

    标识符规则是否适用于运算符重载功能?

  11. 11

    标识符规则是否适用于运算符重载功能?

  12. 12

    npm publish -f是否有解决方法

  13. 13

    强制使用mapply是否有解决方法

  14. 14

    我尝试的Hive插入是否有解决方法

  15. 15

    Debian文件补全破坏$ _是否有解决方法?

  16. 16

    QDMLOPNF 128 限制是否有解决方法?

  17. 17

    BeamSQL 中的“LIKE”是否有解决方法?

  18. 18

    用于检查字符串中的所有字符是否唯一的 Java 算法不适用于 Hashmap?使用地图运算符有更好的解决方案吗?

  19. 19

    用于检查类型T的C#接口是否具有运算符/一种检查类型T是否具有运算符的方法

  20. 20

    在标准(C ++ 11)中,哪里表示余数运算符仅适用于整数类型?

  21. 21

    Fortran派生类型:重载的赋值运算符不适用于'PARAMETER'属性

  22. 22

    struct int数据类型不适用于关系运算符

  23. 23

    instanceof运算符不适用于Class类型变量

  24. 24

    在标准(C ++ 11)中,哪里表示余数运算符仅适用于整数类型?

  25. 25

    Ruby运算符重载不适用于自定义类对象

  26. 26

    将内置类型变量传递给仅具有一个类类型参数的“ +”运算符时,用于自动类型转换的构造函数

  27. 27

    右移运算符不适用于标志枚举

  28. 28

    MYSQL <=运算符不适用于9999值

  29. 29

    scrollTop不适用于2个运算符

热门标签

归档