请教一个interface的问题,关于overload和自定义数据类型

小崔爱读书 2008-03-30 10:45:49
我写了一个interface,之前也写过,都没问题,但今天写的出现问题了;
1 我在接口中定义几个相同名称的方法,就是重载,结果怎么也不行;
2 我定义了一个自定义的数据类型,作为接口的参数,也出现了问题,数据类型很简单就是TByteArray=array of byte。

各位帮忙解决一下。。。或者告诉我无法解决也行。。。
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
呵呵
奇怪吧
禹爸爸 2008-03-31
  • 打赏
  • 举报
回复
为了防止和Delphi自定义的类型冲突,使用时最好加上单元名,如UnitNmae.MyType
小崔爱读书 2008-03-31
  • 打赏
  • 举报
回复
嗯,也对。。这是一个好习惯。谢谢脑脑
wjbwjb 2008-03-31
  • 打赏
  • 举报
回复
编程自定义的最好加上与系统区别的标志,如TByteArray可以TMyByteArray
小崔爱读书 2008-03-31
  • 打赏
  • 举报
回复
是,没想到我定义的TByteArray居然Borland在sysutils单元里面定义过了,我在接口单元文件中没引用sysUtils,就自定义了这个类型,在类实现的时候是在另外一个单元文件,因为其他的需要就uses了sysUtils,结果造成了接口和实现的TByteArray名字虽然一样,但其实是不同的。。。郁闷死了。。太晚了,明天给分。。。
火龙岛主 2008-03-30
  • 打赏
  • 举报
回复
之前一定是忽略了某些你没有注意到的东西。
小崔爱读书 2008-03-30
  • 打赏
  • 举报
回复
哦,可以了。。。我真晕了。。
小崔爱读书 2008-03-30
  • 打赏
  • 举报
回复
定义了一个byte数组类型
TByteArray=array of Byte;
接口:
IByteArrayStream=interface
procedure Init(buf:Array of byte);
procedure AppendByteArray(buf:TByteArray);
procedure AppendByteArray(buf:TByteArray;len:integer);
end;

类我就是实现这个接口
TByteArrayStream=class(TInterfacedObject,IByteArrayStream)
private

public
{procedure Init(buf:Array of byte);
procedure AppendByteArray(buf:TByteArray);overload;
procedure AppendByteArray(buf:TByteArray;len:integer);overload;
end;
也没什么过分的,我还没写实现的代码呢,就编译不了了。。
  • 打赏
  • 举报
回复
能否提供一下你出错的代码?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧