मैं इस तरह एक साधारण वर्ग लिखा है:ऑब्जेक्ट को मुक्त करने के बाद उपयोग करने के लिए ऑब्जेक्ट की एक प्रक्रिया सुरक्षित है?
TMyClass = class
procedure MyProcedure(Sender : TObject);
end;
मैं "MyProcedure", जिसमें मैंने कभी नहीं "स्व" का उल्लेख क्रियान्वित कर रहा हूँ, के बाद वस्तु मुक्त कर दिया गया है:
var
MyObj : TMyClass;
ProcOfObj : TNotifyEvent;
begin
MyObj := TMyClass.Create;
try
ProcOfObj := MyObj.MyProcedure;
finally
MyObj.Free;
end;
ProcOfObj(Self);
end;
यह काम करता है लेकिन मुझे आश्चर्य है कि यह एक सुरक्षित अभ्यास है या यदि यह कुछ समस्या पैदा कर सकता है।
यदि विधि कभी भी स्वयं या किसी भी फ़ील्ड का उपयोग नहीं करती है, तो इसे कक्षा विधि के रूप में भी घोषित किया जा सकता है, और फिर यह सुरक्षित है * और * भविष्य में संशोधनों के खिलाफ सुरक्षित है जो इसे असुरक्षित बना देगा – mjn42
@ डेविड हेफरनन मैंने कक्षा के साथ स्थैतिक स्थानांतरित किया – mjn42