关于参数传递的问题founction1( Dataset: TDataset; StringList:TStringList)在函数里我是直接拿Dataset用

  • 主题发起人 主题发起人 handsome1234
  • 开始时间 开始时间
H

handsome1234

Unregistered / Unconfirmed
GUEST, unregistred user!
关于参数传递的问题founction1( Dataset: TDataset
StringList:TStringList)在函数里我是直接拿Dataset用,还是动态创建一个Datasetaa,然后把Datasetaa:=Dataset? ( 积分: 100 )
<br />关于参数传递的问题founction1( Dataset: TDataset
StringList:TStringList)在函数里我是直接拿Dataset用,还是动态创建一个Datasetaa,然后把Datasetaa:=Dataset?

听人说动态创建一个Datasetaa,然后把Datasetaa:=Dataset,这样好一些,但是这样函数里又增加了一个变量。是不是占用的内存又多了?

如果我不动态创建并赋值的话,是不是所有在函数里修改Dataset的操作都会影响到调用function1(...)前,所传递过来的那个实际参数?

关于这个问题大家有什么文章可以推荐一下,好让我早日清醒。
 
关于参数传递的问题founction1( Dataset: TDataset
StringList:TStringList)在函数里我是直接拿Dataset用,还是动态创建一个Datasetaa,然后把Datasetaa:=Dataset?

听人说动态创建一个Datasetaa,然后把Datasetaa:=Dataset,这样好一些,但是这样函数里又增加了一个变量。是不是占用的内存又多了?

如果我不动态创建并赋值的话,是不是所有在函数里修改Dataset的操作都会影响到调用function1(...)前,所传递过来的那个实际参数?

关于这个问题大家有什么文章可以推荐一下,好让我早日清醒。
 
个人认为不要在程序中过多的创建Object,那样费时又容易出现memory leak。

“如果我不动态创建并赋值的话,是不是所有在函数里修改Dataset的操作都会影响到调用function1(...)前,所传递过来的那个实际参数?”

调用前的当然不会影响,调用后的会
 
事先创建并打开一个继承于 TDataset 的数据集。

founction1( Dataset: TDataset
StringList:TStringList);
begin
with Dataset do
begin
First;
while not Eof do
begin
if StringList.IndexOf(FindField('FieldName').asstring) = -1 then
StringList.Add(FindField('FieldName').asstring);
Next;
end;
end;
end;

像类似的用法,或者是直接调用TDataset的Edit、Post delete等方法,我不知道为什么还要定义什么变量!
 
后退
顶部