لماذا الـ property تكون على شكل const في الgenerics
#2
إقتباس :لماذا الكود التالي ينتج خطأ
لأن SetLength تتطلب تمرير البرامتر الأول بالمرجع var !
إقتباس :لماذا الـ property تكون على شكل const
لأن دلفي لا يحجز أي ذاكرة لل property !
مثال :
PHP كود :
type
  TMyObj 
= class
  private
    
FStr: string;
  public
    
property MyStr: String read FStr write FStr;
  
end; 
عند الوصول الى الخاصية MyStr يقوم دلفي باستبدالها بالمتغير FStr :
PHP كود :
m := TMyObj.Create;
  
m.MyStr := 'hi'; // This line will be converted to m.FStr := 'hi'; 
دلفي يتحقق من طريقة التمرير قبل عملية الاستبدال .. لذلك وجب أن تكتب :
PHP كود :
SetLength(vec.Data, 100); 
بدل :
PHP كود :
SetLength(vec.mData, 100); // E2197 Constant object cannot be passed as var parameter 
Open Your Source .. Open Your Mind
الرد


الردود في هذا الموضوع
لماذا الـ property تكون على شكل const في الgenerics - بواسطة SMP3 - 30-01-2015, 02:58 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم