آشنایی با CLR: قسمت بیست و چهارم
نویسنده: علی یگانه مقدم
تاریخ: ۱۳۹۵/۰۲/۳۰ ۰:۵۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
class DotnetTips
{
....
} class DotnetTips:System.Object
{
...
} | Equals | اگر هر دو شیء مقادیر یکسانی داشته باشند، True باز میگرداند. در فصل پنجم با این مورد بیشتر آشنا میشویم. |
| GetHashCode | بر اساس مقادیر این شیء، یک کد هش شده میسازد. اگر شیء قرار است مقدار هش آن در جداول هش، مثل Dictionary یا HashSet به عنوان کلید به کار رود بهتر است این متد رونویسی شود. متاسفانه این متد در شیء Object تعریف شده است و از آنجا که بیشتر نوعها هیچ وقت به عنوان یک کلید استفاده نمیشوند؛ بهتر بود در این رابطه به یک اینترفیس منتقل میشد. در فصل 5 بیشتر در این مورد بحث خواهد شد (مطالب مرتبط در اینباره + + + ). |
| ToString | پیاده سازی پیشفرض آن اینست که این متد با اجرای کدthis.GetType().FullName
نام نوع را برمیگرداند. ولی برای بعضی نوعها چون Boolean,int32 این متد، رونویسی شده و مقدار مربوطه را به طور رشتهای باز میگرداند. در بعضی موارد هم این متد برای استفادههایی چون دیباگ برنامه هم رونویسی میشود. توجه داشته باشید که که نسبت به CultureInfo ترد مربوطه، واکنش نشان میدهد که در فصل 14 آن را بررسی میکنیم. |
| GetType | یک نمونه از شیء مورد نظر را برمیگرداند که با استفاده از ریفلکشن میتوان به اطلاعات متادیتای آن شیء دسترسی پیدا کرد. در مورد ریفلکشن در فصل 23 صحبت خواهد شد. |
Protected Methods
| MemberwiseClone | این متد از شیء جاری یک Shallow copy (+ )گرفته و فیلدهای غیر ایستای آن را همانند شیء جاری پر میکند. اگر فیلدهای غیر ایستا از نوع Value باشند که کپی بیت به بیت صورت خواهد گرفت. ولی اگر فیلدی از نوع Reference باشد، از همان نوع Ref میباشند؛ ولی خود شیء اصلی، یک شیء جدید به حساب میآید و به شیء سازندهاش ارتباطی ندارد. |
| Finalize | یک متد Virtual است و زمانی صدا زده میشود که GC قصد نابودسازی آن شیء را داشته باشد. این متد برای زمانی نیاز است که شما قصد دارید قبل از نابودسازی، کاری را انجام دهید. در فصل 21 در این مورد بیشتر صحبت میکنیم. |
همانطور که میدانید، همهی اشیا نیاز دارند تا با استفاده از کلمهی new، در حافظه تعریف شوند:
DotnetTips dotnettips=new DotnetTips("i am constructor"); اتفاقاتی که با استفاده از عملگر new رخ میدهد به شرح زیر است:
بعد از انجام همهی موارد بالا، یک اشاره گر به متغیر شما (در اینجا dotnettips) برگشت داده میشود.