gpt4 book ai didi

delphi - 返回属性值的类的Delphi静态方法

转载 作者:行者123 更新时间:2023-12-03 19:07:54 30 4
gpt4 key购买 nike

我正在制作一个Delphi VCL应用程序。我有一类TStudent,其中有两个静态函数:一个从TStudent数组返回姓氏,另一个返回学生的名字。他们的代码类似于:

class function TStudent.FirstNameOf(aLastName: string): string;
var i : integer;
begin
for i := 0 to Length(studentsArray) - 1 do begin
if studentsArray[i].LastName = aLastName then
begin
result := studentsArray[i].FirstName;
Exit;
end;
end;
result := 'no match was found';
end;

class function TStudent.LastNameOf(aFirstName: string): string;
var i : integer;
begin
for i := 0 to Length(studentsArray) - 1 do begin
if studentsArray[i].FirstName = aFirstName then
begin
result := studentsArray[i].LastName;
Exit;
end;
end;
result := 'no match was found';
end;


我的问题是如何避免编写几乎相同的代码两次。有什么方法可以将属性作为函数的参数传递。

最佳答案

我还没有测试过,但是我相信这可能是一种解决方案。

uses TypInfo;

class function TStudent.GetProperty( propertyName: string, searchValue : Variant ) : Variant ;
var i : integer;
begin
for i := 0 to Length(studentsArray) - 1 do begin
if GetPropValue( studentsArray[i], propertyName ) = searchValue
result := GetPropValue( studentsArray[i], propertyName );
end;
// your code in case of not finding anything

end;

关于delphi - 返回属性值的类的Delphi静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136513/

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