تعداد نمونه هاي ساخته شده از يک شي در سي شارپ

تعداد نمونه هاي ساخته شده از يک شي در سي شارپ image

تعداد نمونه هاي ساخته شده از يک شي در سي شارپ

برخي مواقع در حين برنامه نويسي نياز هست تا بخواهيم تعداد نمونه هاي ساخته شده از يک کلاس (تعداد اشياء ساخته شده) را داشته باشيم . مثلا در يک بازي ماشين راني بخواهيم تعداد نمونه هاي ساخته شده از يک نوع خودرو را بدونيم . خوب براي اين کار ميشه از روش هاي مختلفي استفاده کرد مثلا بياييم تک تک خود رو ها رو شمارش کنيم (که البته روش مناسبي نيست) . يا اينکه تعداد ساخته شده از هر کلاس را در يک آرايه يا يک فايل ذخيره کنيم و... روش هاي زيادي براي اين امر وجود داره ولي هرکدام داراي اشکالات و معايبي هست ولي روشي که در ادامه به آن ميپردازيم ضمن اينکه نياز به مديريت کمتري داره . ميشه خيلي راحت به تعداد نمونه ها دسترسي پيدا کرد .

براي اين کار ابتدا کلاس مد نظر را پياده سازي ميکنم :

public class vehicles{

}

سپس يک متغيير شمارنده عددي (int) از نوع ايستا(static) تعريف ميکنيم اين متغيير محلي براي ذخيره سازي تعداد نمونه هاي ايجاد شده است

private static int _counter;

حال يک سازنده ايستا ايجاد ميکنيم اين سازنده فقط يک بار اجرا ميشه و به وسيله اون ما يک مقدار اوليه به متغيير شمارنده انتساب ميدهيم .

static vehicles(){

 _counter = 0;

}

حالا هر زمان که نمونه اوليه از اين کلاس ايجاد بشه بايد يک واحد به شمارنده اضافه بشه و هر وقت يک نمونه از بين بره بايد يک واحد از آن کم بشه . براي اين کار ميشه از سازنده و مخرب مربوط به هر نمونه استفاده کرد

public vehicles(){_counter ++;)

~vehicles(){_counter --;)

البته در اينجا بايد به يک نکته توجه کرد و اون اينه که زمان تخريب کلاس را کامپايلر سي شارپ تعيين ميکند و ما نميتوانيم به زمان دقيق آن را بدست بياوريم پس در اينجا ميتوانيم يک متد ثانويه ايجاد کنيم و در زمان مورد نياز آنرا فرا بخوانيم تا يک واحد از شمارنده کم کند . خوب حالا براي دسترسي به مقدار شمارنده کافي است که يک خصوصيت ايستا به صورت زير ايجاد کنيم .

public  static int Count

{

get{return _counter;}

}

حالا هر زمان که به تعداد نمونه هاي ساخته شده نياز داشته باشيم به صورت زير عمل مي کنيم .

vehicles.Counter;

دیدگاه خود را به اشتراک بگذارید.

پربازدیدترین مقالات

مشاهده مقالات سایت
توابع تعميم يافته image

توابع تعميم يافته

چهار شنبه / بیست و پنجم / تیر ادامه مطلب
فايل robots.txt image

فايل robots.txt

چهار شنبه / بیست و پنجم / تیر ادامه مطلب