CSCIENCE

CSCIENCE

سیشارپ - باید دانست 3

يكشنبه, ۳ شهریور ۱۳۹۲، ۰۱:۳۰ ق.ظ
null پذیری

باید دانست که:

در سیشارپ تایپ ها به دو دسته کلی تقسیم می شوند
  • Value Types: تایپ هایی که مستقیما شامل مقدار هستند، مانند تایپ های پایه ای (intdoublefloatdecimal)
  • Reference Types: تایپ هایی که شامل ارجاع به محلی از حافظه هستند که شامل مقدار مربوطه است مانند کلاس ها
یکی از تفاوت های این دو دسته در امکان null بودن آن ها است. Value Typeها مقدار null را قبول نمی کنند. برای اینکه بتوانیم مقدار null به این دسته از تایپ ها نسبت دهیم (null پذیر کنیم) باید از شئ Nullable استفاده کنیم.

Nullable<int> myint = 10;
myint = null;               //No Error!

در یک پروژه که تعداد null پذیر کردن ها زیاد باشد، نوشتن Nullable باعث کاهش خوانایی کد می شود به همین دلیل syntax دیگری برای این کار وجود دارد. کافیست مقابل اسم تایپ از علامت سوال استفاده کنیم:

int? myint = 10;
myint = null;               //No Error!


این نکته از این جهت اهمیت دارد که:
هنگامی که از پایگاه داده های رابطه ای استفاده می کنید به دلیل اینکه این گونه پایگاه داده ها برای فیلدهای نوع های پایه مثل int هم null پذیر هستند، هنگامی که داده null از آن ها خوانده می شود اگر متغیر شما null پذیر نباشد برنامه ی شما exception ارسال خواهد کرد و در صورت کنترل نکردن آن، اجرای برنامه متوقف می شود.
البته null پذیری در جاهای مختلفی می تواند کاربرد داشته باشد. مثال بالا به دلیل واضح تر بودن آورده شده است.
موافقین ۱ مخالفین ۰ ۹۲/۰۶/۰۳
cscience

سیشارپ

C#

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی