سی شارپ - متغیر ها

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

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

Type Example
Integral types sbyte, byte, short, ushort, int, uint, long, ulong, and char
Floating point types float and double
Decimal types decimal
Boolean types true or false values, as assigned
Nullable types Nullable data types

سی شارپ همچنین اجازه ی تعریف نوع های داده ای دیگر مانند enum و همینطور نوع های ارجاع مانند کلاس را می دهد.که در فصل های بعدی در مورد آنها توضبح خواهیم داد

تعریف متغیر ها

شیوه ی تعریف متغیر در سی شارپ به صورت زیر است

<data_type> <variable_list>;

در اینجا data_type یک نوع معتبر در سی شارپ مانند char, int, float, double, یا یک نوع ایجاد شده ای توسط کاربر باید باشد و variable_list می تواند یک یا چند شناسه که با کاما از هم جدا شده اند باشد.

چند مثال صحیح از تعریف داده در زیر آورده شده است

int i, j, k;
char c, ch;
float f, salary;
double d;

شما می توانید یک متغیر را در هنگام تعریف مقدار دهی کنید

int i = 100;

مقداردهی اولیه ی متغیر ها

برای مقدار دهی متغیر ها باید یک مقدار ثابت را به وسیله ی علامت مساوی به آنها نسبت داد. شیوه ی معمول مقدار دهی به صورت زیر است:

variable_name = value;

متغیر ها ها را می توان در هنگام تعریف مقدار دهی کرد. یک مقداردهی از یک مقدار ثابت بعد از علامت مساوی تشکیل می شود.

<data_type> <variable_name> = value;

تعدای مثال در پایین آورده شده است

int d = 3, f = 5;    /* initializing d and f. */
byte z = 22;         /* initializes z. */
double pi = 3.14159; /* declares an approximation of pi. */
char x = 'x';        /* the variable x has the value 'x'. */

این حایز اهمیت هست که متغیر ها به شیوه ی صحیح مقدار دهی شوند در غیر اینصورت برنامه نتایج نادرستی را بر می گرداند.

در مثال های زیر نحوه ی استفاده از انواع مختلف متغیر ها نشان داده شده است

using System;
namespace VariableDefinition 
{
   class Program 
   {
      static void Main(string[] args) 
      {
         short a;
         int b ;
         double c;

         /* actual initialization */
         a = 10;
         b = 20;
         c = a + b;
         Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
         Console.ReadLine();
      }
   }
}

خروجی برنامه ی بالا به شکل زیر است:

a = 10, b = 20, c = 30

دریافت داده از کاربر

کلاس Console که در فضای نام System موجود است یک تابع به نام ReadLine() دارد که کار دریافت داده ی ورودی و ذخیره ی آن در یک متغیر را انجام می دهد.

برای مثال

int num;
num = Convert.ToInt32(Console.ReadLine());

تابع Convert.ToInt32() داده ی وارد شده توسط کاربر را به نوع عددی (int) تبدیل می کند. چرا که خروجی که Console.ReadLine() بر می گرداند از نوع رشته است

عبارت های Lvalue و Rvalue در سی شارپ

دو نوع عبارت در سی شارپ وجود دارد

  • lvalue : عبارتی است که می تواند در هردوطرف یک علامت تخصیص قرار بگیرد
  • rvalue : عبارتی ست که فقط در سمت راست یک علامت تخصیص قرار می گیرد

متغیر هایی که lvalue هستند ، می توانند در سمت چپ یک علامت تخصیص قرار بگیرند. مثلا اعداد rvalues هستند و نمی توانند در سمت چپ یک علامت تخصیص قرار بگیرند. مثال زیر یک عبارت صحیح در سی شارپ است:

int g = 20;

اما عبارت زیر غلط است و یک خطای زمان کامپایل ایجاد می کند.

10 = 20;