Delphi 在继承的泛型集合中迭代self时发生编译错误
我是德尔福的新手,但在C#an方面经验丰富。我通常认为这是一件很容易做到的事情,但我得到了一份工作 “E2430 for in语句无法对集合类型“类引用”进行操作” 在下面代码中,我正在执行“for jobActivity in self do”。我在这里尝试了不同的事情,但我已经失败了!我会认为应该有一些简单的方法来做到这一点,我相信我一定错过了一些东西。有人能帮忙吗Delphi 在继承的泛型集合中迭代self时发生编译错误,delphi,generics,for-in-loop,Delphi,Generics,For In Loop,我是德尔福的新手,但在C#an方面经验丰富。我通常认为这是一件很容易做到的事情,但我得到了一份工作 “E2430 for in语句无法对集合类型“类引用”进行操作” 在下面代码中,我正在执行“for jobActivity in self do”。我在这里尝试了不同的事情,但我已经失败了!我会认为应该有一些简单的方法来做到这一点,我相信我一定错过了一些东西。有人能帮忙吗 type TJobActivityDetailCollection = class(TObjectList<TJob
type
TJobActivityDetailCollection = class(TObjectList<TJobActivityDetail>)
class function ForYear(year: integer):TJobActivityDetailCollection;
end;
class function TJobActivityDetailCollection.ForYear(year: integer)
:TJobActivityDetailCollection;
var
returnCollection : TJobActivityDetailCollection;
yearStart, yearEnd : TDateTime;
jobActivity : TJobActivityDetail;
begin
yearStart := EncodeDateTime(year,7,1,0,0,0,0);
yearEnd := EncodeDateTime(year + 1,6,30,23,59,59,0);
returnCollection := TJobActivityDetailCollection.Create();
for jobActivity in self do
begin
if (jobActivity.Date > yearStart) and (jobActivity.Date > yearEnd) then
begin
returnCollection.Add(jobActivity);
end;
end;
Result := returnCollection;
end;
类型
TJobActivityDetailCollection=类(TObjectList)
类函数ForYear(year:integer):TJobActivityDetailCollection;
结束;
类函数TJobActivityDetailCollection.ForYear(年份:整数)
:TJobActivityDetailCollection;
变量
returnCollection:TJobActivityDetailCollection;
yearStart,yearEnd:TDateTime;
jobActivity:TJobActivityDetail;
开始
yearStart:=编码日期时间(年,7,1,0,0,0);
年终:=编码日期时间(年份+1,6,30,23,59,59,0);
returnCollection:=TJobActivityDetailCollection.Create();
对于自助作业活动
开始
如果(jobActivity.Date>yearStart)和(jobActivity.Date>yearEnd),则
开始
returnCollection.Add(作业活动);
结束;
结束;
结果:=返回收集;
结束;
在类方法中(查看文档),Self
指针是对类类型本身的引用(TJobActivityDetailCollection
此处),而不是指向类的对象实例的指针。
for..in
循环枚举的是对象实例,而不是类
解决方案是简单地从方法中删除类说明符。在类方法中(查看文档),
Self
指针是对类类型本身的引用(TJobActivityDetailCollection
此处),而不是指向类的对象实例的指针。
for..in
循环枚举的是对象实例,而不是类
解决方案是简单地从方法中删除类说明符。在类方法中(查看文档),
Self
指针是对类类型本身的引用(TJobActivityDetailCollection
此处),而不是指向类的对象实例的指针。
for..in
循环枚举的是对象实例,而不是类
解决方案是简单地从方法中删除类说明符。在类方法中(查看文档),
Self
指针是对类类型本身的引用(TJobActivityDetailCollection
此处),而不是指向类的对象实例的指针。
for..in
循环枚举的是对象实例,而不是类
解决方案是简单地从方法中删除类说明符。Delphi中的类函数是static的C#等价物。您不能从“静态”方法访问self(this)。只需从函数中删除类。Delphi中的类函数是C#等价于静态函数的。您不能从“静态”方法访问self(this)。只需从函数中删除类。Delphi中的类函数是C#等价于静态函数的。您不能从“静态”方法访问self(this)。只需从函数中删除类。Delphi中的类函数是C#等价于静态函数的。您不能从“静态”方法访问self(this)。只需从函数中删除类。谢谢reckface。。。这很有道理,我现在明白了…谢谢reckface。。。这很有道理,我现在明白了…谢谢reckface。。。这很有道理,我现在明白了…谢谢reckface。。。这很有道理,我现在明白了。。。