بررسی متغیر های Value Types در زبان سی شارپ
آموزش سی شارپ

بررسی متغیر های Value Types در زبان سی شارپ

انواع داده ای (یا متغیر هایی که تعریف می کنیم) به دو گروه اصلی در  سی شارپ تقسیم می شوند :

  • Value Types
  • Reference Types

Value Types : این نوع داده ای که به انواع مقداری هم معروف هستند ، هنگام تعریف متغیری از این نوع ، به صورت مستقیم مقدار را در خود ذخیره می کنند. یعنی به صورت مستقیم در حافظه هم تعریف می شوند و هم مقدار دهی می شوند.

تمام انواع داده ای مقداری یا Value Type از فضای نام  System.ValueType مشتق شده اند.

در مثال بالا ما متغیری از نوع int به نام i تعریف کرده ایم که مقدار 100 را در خود ذخیره میکند . به این شکل که یک خانه از حافظه به آن اختصاص داده شده است و این خانه یک آدرس دارد که مقدار 100 داخل این خانه قرار داده شده است. به این ترتیب باید برای خواندن این مقدار متغیر i را صدا بزنیم.

انواع  داده ای Value Type:

  1. Integer Types
  2. Decimal Types
  3. Boolean
  4. Char
  5. Date
  6. Struct
  7. Enums

ارسال با مقدار :

شما هنگامی که یک متغیر تعریف میکنید و آن را به عنوان پارامتر ورودی برای یک متد (Method) ارسال می کنید ، یک کپی از آن متغیر در حافظه ایجاد می شود و عملیات درون متد روی داده کپی انجام می شود و هیچ تغییری در مقدار اصلی ایجاد نمی شود.

 internal class Program
    {
        static void Main(string[] args)
        {
            int a = 10;
            int result=Sum(a);
            Console.WriteLine(result); // output = 20
            Console.WriteLine(a); // output = 10 
        }

        static int Sum(int x)
        {
            return x + 10;
        }
    }

نتیجه : در مثال بالا یک متغیر به نام a تعریف کرده ایم مقدار 10 را به آن انتساب داده ایم و یک متد به نام Sum تعریف کرده ایم که یک متغیر از  نوع int  به نام x به عنوان پارامتر ورودی دریافت میکند . و سپس a را به این متد پاس داده ایم . داخل بدنه این متد مقدار x را با 10 جمع زده ایم و نتسجه نهایی را در خروجی چاپ کرده ایم .

همانطور که مشاهده میکنید هنگام چاپ نتیجه متد مقدار 20 را نشان می دهد و متغیر a  همان 10 را نشان می دهد که در ابتدا بود.