متغیرها در حقیقت چیزی نیستند جز اسمی که به بخشی از فضای حافظه انتساب میدهیم. متغیرها، به بيان بسيار ساده، مكانهايي جهت ذخيره اطلاعات هستند. شما اطلاعاتي را در يك متغير قرار ميدهيد و از اين اطلاعات بوسيله متغير در عبارات C# استفاده مينماييد. كنترل نوع اطلاعات ذخيره شده در متغيرها بوسيله تعيين كردن نوع براي هر متغير صورت ميپذيرد.
C# زباني بسيار وابسته به انواع است، بطوريكه تمامي عملياتي كه بر روي دادهها و متغيرها در اين زبان انجام ميگيرد با دآن استن نوع آن متغير ميسر ميباشد. قوانيني نيز براي تعيين اينكه چه عملياتي بر روي چه متغيري انجام شود نيز وجود دارد.(بسته به نوع متغير)
انوع ابتدايي زبان C# شامل : يك نوع منطقي(Boolean) و دو نوع عددي اعداد صحيح(integer)، اعداد اعشاري(Floating points) ميباشد
به انواع Boolean از اين رو منطقي ميگوييم كه تنها داراي دو حالت منطقي صحيح(True) و يا غلط(False) ميباشند.
جدول زير تمامي انواع عددي صحيح C#، اندازه آنها و رنج قابل قبول آنها را نشان ميدهد.
رنج قابل قبول
|
اندازه به بيت
|
نام مستعار
|
نوع
|
128- تا 127
|
8
|
sbyte
|
System.SByte
|
0 تا 255
|
8
|
byte
|
System.Byte
|
32768- تا 32767
|
16
|
short
|
System.Int16
|
0 تا 65535
|
16
|
ushort
|
System.UInt16
|
2147483648- تا 2147483647
|
32
|
int
|
System.Int32
|
0 تا 4294967295
|
32
|
Uint
|
System.UInt32
|
9223372036854775808- تا 9223372036854775807
|
64
|
long
|
System.Int64
|
0 تا 18446744073709551615
|
64
|
ulong
|
System.UInt64
|
از اين انواع براي محاسبات عددي استفاده ميگردد.
sbyte Temprature = 10;
byte Lessons = 100;
uint StudentNumber = 10000;
int poans = -20;
مثال 1-2-1
يك نوع ديگر را نيز ميتوان در اين جدول اضافه نمود و آن نوع char است. هر چند شايد از نظر بسياري از کسانی كه با زبانهاي ديگر برنامهسازي كار كردهاند اين تقسيم بندي غلط به نظر آيد، اما بايد گفت كه در زبان C# نوع char نيز نوع خاصي از انواع عددي است كه رنجي بين صفر تا 65535 دارد و اندازه آن نيز 16 بيتي است، اما به جاي نمايش دادن مقادير عددي تنها ميتواند بيان كننده يك كاراكتر باشد. در آينده در اين مورد بيشتر توضيح خواهيم داد.
char simple ='a';
char unicode = '\u0041';
char hex = '\x0041';
char escape = '\n';
مثال 4-2-1
عبارات Escape Sequence
این عبارات ، کاراکترهای ویژه ای هستند که در زبان های هم خانواده C ، معنای خاصی دارند. جدول زیر لیستی از این عبارات را نمایش میدهد.
مقدار
|
معنا
|
کاراکتر
|
0x0027
|
Single quote
|
\'
|
0x0022
|
Double quote
|
\"
|
0x005C
|
Backslash
|
\\
|
0x0000
|
Null
|
\0
|
0x0007
|
Alert
|
\a
|
0x0008
|
Backspace
|
\b
|
0x000C
|
Form feed
|
\f
|
0x000A
|
New line
|
\n
|
0x000D
|
Carriage return
|
\r
|
0x0009
|
Horizontal tab
|
\t
|
0x000B
|
Vertical tab
|
\v
|
مثال زیر یکی از کاربردهای این عبارات را بیان میکند :
Console.WriteLine("An example \n of Escape sequence");
خروجی برنامه به صورت زیر خواهد بود :
An example
of Escape sequence
مثال 5-2-1
همانگونه که میبینید ، کاراکتر \n باعث گردیده است که عبارتی که بعد از خودش می آید ، در سطر بعدی چاپ شود
جدول زير تمامي انواع عددي اعشاري زبان C# را نمايش ميدهد.
رنج قابل قبول
|
دقت
|
اندازه به بیت
|
نام مستعار
|
نوع
|
3.4*1038 تا 1.5*10-45
|
7 رقم
|
32
|
float
|
System.Single
|
1.7*10308 تا 5.0*10-324
|
15-16 رقم
|
64
|
double
|
System.Double
|
7.9*1028 تا 1.0*10-28
|
28-29 رقم
|
128
|
decimal
|
System.Decimal
|
انواعي از نوع floating point هنگامي استفاده ميشوند كه محاسبات عددي به دقتهاي اعشاري نياز داشته باشند. همچنين براي منظورهاي تجاري استفاده از نوع decimal بهترين گزينه است. اين نوع تنها در زبان C# وجود دارد و در زبانهاي مشابه به آن نظير Java چنين نوعي در نظر گرفته نشده است.
مثال زیر نحوه تعریف و مقدار دهی عبارات اعشاری را نمایش می دهد :
float Average = 18.2f;
double Weight = 1900.564;
decimal dc = 131321321321.1111m;
مثال 6-2-1
در مثال زیر تعریف و مقداردهی متغيرهاي Boolean نمايش داده ميشوند:
bool content = true;
bool noContent = false;
مثال 7-2-1
متغيرهاي bool تنها ميتوانند يكي از دو مقدار true يا false را داشته باشند، يعني همانند برخي از زبانهاي برنامهسازي مشابه، مانند C و يا C++، مقدار عددي نميپذيرند، زيرا همانگونه كه ميدانيد در اين دو زبان هر مقدار عددي صحيح مثبت بغير از صفر به عنوان true و عدد صفر به عنوان false در نظر گرفته ميشود و در حقيقت نوع bool در اين دو زبان نوعي integer ميباشند. اما در زبان C# انواع bool فقط يكي از دو مقدار true يا false را ميپذيرند.
نحوه استفاده از دستور Console.WriteLine در هنگام کار با متغیرها
int first = 10;
int second = 20;
float third = 12.2f;
Console.WriteLine("First={0}_Second={1}_Third={2}",first,second,third);
مثال 8-2-1
در مثال بالا ، ابتدا 3 متغیر تعریف نموده ایم. حال میخواهیم آنها را چاپ کنیم.برای این منظور بایستی از دستور Console.WriteLine استفاده نماییم.در این حالت ابتدا یک رشته کنترلی تعریف مینماییم. در این رشته به جای اولین متغیری که میخواهد چاپ شود، عبارت {0} و به جای دومین متغیر عبارت {1} قرار میدهیم و همینطور الی آخر. سپس پس از پایان رشته کنترلی ، متغیرها را به ترتیب آورده و با کاما از همدیگر جدا میکنیم.
Console.WriteLine( " رشته کنترلی", لیست متغیرها );
به دستور زیر دقت کنید :
Console.WriteLine("First={0}_Second={1}_Third={2}",first,second,third);
خروجی دستور بالا چنین خواهد بود:
First=10_Second=20_Third=12.2
همانطور که میبینید ، رشته کنترلی عینا چاپ شده و فقط به جای عبارتهای {0} و {1} و {2} ، متغیرهای متناظر آنها چاپ شده اند.
نوع داده ای رشته (string)
يكي ديگر از انواعي كه تا كنون با آن سر و كار داشتهايم نوع رشتهاي (string) است. يك رشته، از قرار گرفتن تعدادي كاراكتر در كنار يكديگر كه داخل يك زوج كوتيشن " " قرار گرفتهاند، ايجاد ميگردد. بعنوان مثال "Hi This is a string type". در اعلان متغيرها نيز در صورت تعريف متغيري از نوع رشتهاي، در صورت نياز به تخصيص مقدار به آن، حتماً كاراكترهايي كه ميخواهيم بعنوان يك رشته به متغيرمان نسبت دهيم را بايد داخل يك زوج كوتيشن " " قرار دهيم. به مثال زير توجه نماييد.
string Name;
…
Name = "My name is Alireza";
مثال 1-4-1
همانطور كه در اين مثال مشاهده مينماييد، متغيري از نوع رشتهاي تحت نام Name تعريف شده است و سپس در جايي از برنامه كه نياز به تخصيص مقدار براي اين متغير وجود دارد، عبارت مورد نظر را داخل دو كوتيشن قرار داده و به متغير خود تخصيص دادهايم. رشتهها از پر كاربرد ترين انواع در زبانهاي برنامهسازي جهت ايجاد ارتباط با كاربر و دريافت اطلاعات از كاربر ميباشند.(همانطور كه در درس قبل نيز گفته شد، دستور Console.ReadLine() يك رشته را از ورودي دريافت مينمايد.)