بیان while یک بیان (دستور) یا بلوکی از بیان ها را تا زمانی که عبارت تعیین شده اش به false ارزیابی شود، اجرا می کند.
مثال
بیان while یک بیان (دستور) یا بلوکی از بیان ها را تا زمانی که عبارت تعیین شده اش به false ارزیابی شود، اجرا می کند.
مثال
کلمه کلیدی volatile (فرّار) نشان می دهد که یک فیلد می تواند توسط چندین ریسمان (thread) که همزمان درحال اجرا هستند، دستکاری شود. فیلدهایی که بصورت volatile اعلان شده اند، مورد بهینه سازی های کامپایلری ای که فرضشان دسترسی تک ریسمانی است قرار نمی گیرند. این کار تضمین می کند که مقدار فیلد در همه زمان ها به روز ترین مقدار است.
اصلاحگر volatile معمولا" برای فیلدی که بدون بیان lock توسط چندین ریسمان مورد دسترسی قرار می گیرد، استفاده می شود.
کلمه کلیدی volatile را می توان رو فیلدهایی از نوع های زیر اعمال کرد:
کلمه کلیدی virtual برای اصلاح متد، پراپرتی، شاخصگر یا اعلان رویداد استفاده می شود و به آنها اجازه می دهد که در کلاس مشتق شده رونویسی (override) شوند. برای مثال، این متد می تواند توسط هر کلاسی که از آن ارث بری می کند، رونویسی شود.
پیاده سازی یک عضو مجازی (virtual) را می توان توسط عضو رونویسی کننده در یک کلاس مشتق شده، عوض کرد.
ملاحظات
وقتی یک متد مجازی فراخوانی می شود، نوع زمان-اجرای آن شیئ برای عضو رونویسی کننده بررسی می شود. عضو رونویسی کننده، در کلاس مشتق شده فراخوانی می شود، که ممکن است همان عضو اصلی باشد (اگر هیچ کلاس مشتق شده ای، آن عضو را رو نویسی نکرده باشد).
بطور پیش فرض، متدها غیر-مجازی هستند. شما نمی توانید متد غیر مجازی را رونویسی کنید.
یک املاء (syntax) راحت که درستی استفاده از اشیاء IDisposable را تضمین میکند را ارائه می دهد.
مثال
مثال زیر چگونگی استفاده از بیان using را نشان می دهد.
ملاحظات
File و Font نمونه هایی از نوع های مدیریت شده (managed) هستند که منابع مدیریت نشده (unmanaged) را دستیابی می کنند (در این مورد دستگیره های فایل و زمینه ها دستگاه (دستگاهی که قرار است فونت در آنجا به نمایش در بیاید)) انواع گوناگون دیگری از منابع مدیریت نشده و نوع های کتابخانه کلاسی که آنها را کپسوله می کنند وجود دارد. همه ی چنین نوع هایی باید رابط IDisposable را پیاده سازی کنند.
رهنمون using دو کاربرد دارد:
کلمه کلیدی using همچنین برای ساختن "بیان using" استفاده می شود که کمک می کند مطمئن شویم اشیاء IDisposable مانند فایل ها و فونت ها بدرستی مدیریت می شوند. برای اطلاعات بیشتر بیان using را ببینید.
کلمه کلیدی using دو کاربرد عمده دارد:
کلمه کلیدی ushort نشان دهنده نوع داده عددی صحیحی است که مقادیر را طبق شرایط زیر ذخیره می کند:
لیترال ها
شما می توانید یک متغیر ushort را بصورت زیر اعلان و مقداردهی اولیه کنید:
در اعلان بالا، لیترال صحیح 65535 بطور ضمنی از int به ushort تبدیل می شود. اگر لیترال عددی صحیح از محدوده ushort تجاوز کند، یک خطای کامپایل رخ می دهد.
در هنگام فراخوانی متدهای overload شده باید از عملگر قالبریز (cast) استفاده کرد. برای مثال متدهای overload شده زیر را که دارای پارامترهای ushort و int هستند را در نظر بگیرید:
کلمه کلیدی unsafe یک زمینه (context) ناامن تعریف می کند که برای هر عملی که با اشاره گرها در ارتباط باشد، لازم است.
شما می توانید از اصلاحگر unsafe در اعلان یک نوع یا یک عضو استفاده کنید. حوزه همان نوع و یا عضوی که دارای اصلاحگر unsafe باشد به عنوان زمینه ناامن در نظر گرفته می شود. در مثال زیر متدی را با اصلاحگر unsafe اعلان کرده ایم:
حوزه (scope) زمینه ناامن از لیست پارامترها شروع شده و تا آخر حوزه متد ادامه دارد، بنابراین از اشاره گرها می توان در لیست پارامترها نیز استفاده کرد:
شما می توانید از بلوک unsafe برای فعالسازی استفاده از کد ناامن در بلوک مربوطه استفاده کنید. برای مثال:
کلمه کلیدی unchecked برای متوقف کردن عملیات بررسی سر ریز (overflow) در عملیات محاسباتی و تبدیلات نوع صحیح استفاده می شود.
در یک زمینه بررسی نشده (unchecked context) ، اگر یک عبارت مقداری خارج از محدوده نوع مقصد تولید کند، سرریز گزارش داده نمی شود. برای مثال، به این دلیل که در مثال زیر عملیات محاسباتی در بلوک یا عبارت unchecked قرار گرفته ، از این حقیقت که نتیجه محاسبه بزرگتر از حد عدد صحیح است ، چشم پوشی می شود، و به متغیر int1 مقدار 2,147,483,639- انتساب داده می شود.
اگر محیط unchecked حذف شود، یک خطای کامپایل رخ می دهد. سرریز (overflow) می تواند در زمان کامپایل تشخیص داده شود، زیرا تمام قسمت های عبارت بصورت ثابت (Constant) هستند.
کلمه کلیدی ulong نشاندهنده یک نوع صحیح است که مقادیر را طبق شرایط زیر ذخیره می کند.
لیترال
شما می توانید متغیرهای ulong را بصورت زیر اعلان و مقداردهی اولیه کنید.
وقتی یک لیترال عددی صحیح دارای هیچ پسوندی نباشد، نوع آن یکی از نوع هایی است که مقدار آن لیترال توانایی قرار گرفتن در آن را داشته باشد: int ، uint ، long ، ulong در مثال بالا، این نوع ulong است.
شما همچنین می توانید برطبق قوانین زیر برای تعیین نوع لیترال از از پسوندها استفاده کنید: