[英]TStream warning in delphi
我有以下代碼片段
Procedure TFrm.Retrieve(mystring : string);
var
bs : TStream;
...
begin
...
bs:=nil;
//bs:= TStream.create;
try
bs := CreateBlobStream(FieldByName('Picture'), bmRead);
finally
bs.Free;
end;
...
end;
我在理解bs
變量的初始化時遇到問題。
如果我不初始化它,我會得到一個明顯的警告。
Variable 'bs' might not have been initialized.
現在,如果我將其作為評論部分,即
bs:= TStream.create;
我收到以下警告。
Constructing instance of 'TStream' containing abstract method 'TStream.Read'
Constructing instance of 'TStream' containing abstract method 'TStream.Write'
最后如果我使用它完全可以正常工作
bs:=nil;
我將其分配給Nil
是否正確?
任何意見表示贊賞。
TStream
是抽象的,因此您不應實例化它(調用抽象方法會導致運行時錯誤)。 相反,您應該實例化一個非抽象的后代。 完成后,您應該Free
實例。
例如:
var
Stream: TStream;
begin
try
Stream := CreateBlobStream(FieldByName('Picture'), bmRead);
try
// ...
finally
Stream.Free;
end;
except
// handle exceptions
end;
end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.