بررسی Value Type ها در زبان برنامه نویسی سی شارپ

بررسی Value Type ها در زبان برنامه نویسی سی شارپ

در این پست از وبسایت پرووید، در رابطه با بررسی Value Type ها در زبان برنامه نویسی سی شارپ صحبت خواهیم کرد. به ادامه ی مطلب بروید.

در قسمت قبل از این آموزش در وب سایت پرووید در رابطه با Data Type های مختلف در زبان برنامه نویسی سی شارپ صحبت کردیم. در سی شارپ Data Type ها براساس اینکه مقدار خود را به چه صورت در حافظه ذخیره میکنند، به سه دسته ی Value Type و Reference Type و Pointer Type تقسیم می شوند. در این قسمت از این آموزش از وب سایت پرووید در رابطه با Value Type ها صحبت خواهیم کرد.

بررسی Value Type ها

در زبان برنامه نویسی سی شارپ Value Type ها در واقع Data Type هایی هستند که Value خود را در همان فضایی از حافظه که به آن ها اختصاص داده شده است، ذخیره میکنند. به عبارت دیگر متغیرهایی که از این نوع Data Type ها تعریف شوند در درون همان قسمت از حافظه مقدار و یا Value خود را ذخیره می کنند. برای مثال فرض کنید که یک متغیر با نام i و از نوع int شبیه به کد زیر تعریف کرده ایم.

int i = 100;

همانطور که در این کد مشاهده می کنید، مقدار عددی 100 در این متغیر ریخته شده است. از آنجایی که int یک Value Type در زبان سی شارپ به حساب میاد، مقدار 100 در درون همان فضایی از حافظه که به این متغیر اختصاص داده شده است، ذخیره می شود. تصویری که در قسمت زیر مشاهده می کنید، ذخیره شدن عدد 100 در یک فضای انتزاعی از حافظه با یک آدرس مشخص را نشان می دهد.

نکته مهمی که قصد داریم در رابطه با آن صحبت کنیم، این است که در زبان برنامه نویسی سی شارپ تمامی Value Type ها از کلاس System.ValueType ارث بری می کنند. این کلاس به نوبه خود از کلاس System.Object ارث بری می کنید. لیست تمامی Data Type هایی که در زبان سی شارپ Value Type به حساب می آیند در قسمت زیر آورده شده است.

  • bool
  • byte
  • char
  • decimal
  • double
  • enum
  • float
  • int
  • long
  • sbyte
  • short
  • struct
  • uint
  • ulong
  • ushort

بررسی Pass by Value

زمانی که یک متغیر از یک نوع Value Type را از یک متد به یک متد دیگر پاس میدهید، اتفاقی که می افتد این است که یک کپی مجزا از آن متغیر در متد مقصد ایجاد می شود و هرگونه تغییری بر روی این کپی بر متغیر اول تاثیر نمی گذارد و متغیر اول که در متد اول تعریف شده است، نمی گذارد.

بسته ی آموزش ویدئویی سی شارپ دات نت

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی سی شارپ دات نت دیدن کنید.

کدی که در قسمت زیر مشاهده می کنید، روند انجام این کار را نشان می دهد.

static void ChangeValue(int x)
{
    x =  200;

    Console.WriteLine(x);
}

static void Main(string[] args)
{
    int i = 100;

    Console.WriteLine(i);
    
    ChangeValue(i);
    
    Console.WriteLine(i);
}

خروجی این کد شبیه به تصویر زیر است.

همانطور که در مثال بالا مشاهده شد، یک متغیر با نام i در متد Main تعریف شده است و سپس این متغیر به یک متد با نام ChangeValue تحویل داده می شود. هرگونه تغییری که بر روی مقدار متغیر i در متد ChangeValue رخ بدهد، بروی مقدار این متغیر در متد Main تاثیری نمی گذارد.

امیدواریم که این آموزش از وبسایت پرووید نیز مورد توجه تمامی دوستان عزیز قرار گرفته باشد. از شما دعوت می‌کنیم که از دیگر آموزش های ما در رابطه با زبان سی شارپ استفاده کنید. لیست کامل این آموزش ها را می توانید در پست مربوط به آموزش کامل توسعه نرم افزار با سی شارپ مشاهده کنید.

مرتضی گیتی
بدون نظر

ارسال نظر

نظر
نام
ایمیل
وب سایت