در این پست دامنه انواع متغیر را بیان می کنیم . دانستن این دامنه ها به ما کمک می کند تا در هنگام استفاده از آنها برای منظور خود ، نوع درستی از متغیر را بکار گیریم تا هم برنامه ما هنگام اجرا دچار خطا های پیدا و پنهان نگردد و هم اینکه از هدر رفت منابع جلوگیری شود .مثلا اگر در برنامه ما داشتن یک متغیر از نوع byte کافی باشد ، اشتباها از نوع دیگری مانند int استفاده نمی کنیم . در چنین مواردی است که گرچه برنامه هیچ گونه خطایی ندارد ولی هدر رفت منابع را بدنبال دارد.در برخی از موارد نیز کاربرد نابجای متغیرها باعث خطاهای پنهان در برنامه شده و مثلا اعداد محاسبه شده آنگونه که شما انتظار دارید نیستندو در برخی از موارد نیز آشکاراپیام خطایی دریافت می کنید که ناشی از کاربرد نابجای متغیر تبدیل اشتباه آنها به همدیگر می باشد.
1 . byte :
بین ( 255 ) تا ( 0 )
2 . sbyte :
بین ( 127+ ) تا ( 128- )
3 . short :
بین ( 32767+ ) تا ( 32768- )
4 . ushort :
بین ( 65535 ) تا ( 0 )
5 . float :
عددی است 6 الی 9 رقمی ( شناور ) در بین بازه عددی زیر:

6 . double :
عددی 15 الی 17 رقمی ( شناور ) در بین بازه عددی زیر :

7 . decimal :
عددی است 28 الی 29 رقمی ( شناور ) در بین بازه عددی زیر :
8 . int :
بین ( 2147483647+ ) تا ( 2147483648- )
9 . uint :
بین ( 4294967295+ ) تا ( 0 )
10 . long :
بین ( 9223372036854775807+ ) تا ( 9223372036854775808- )
11 . ulong :
بین ( 18,446,744,073,709,551,615 ) تا ( 0 )
12 . Boolean :
شامل دو حالت true=1 و false=0 می باشد .
13 . char : شانزده بیت کاراکتر یونیکد
U +0000 تا U +ffff
-------------------------------------------------------------
از دستور :
Console.WriteLine("Size of int: {0}", sizeof(int));
به منظور دسترسی به سایز هر کدام از می توان استفاده کرد .
Variables
متغییرها چیزی نیستند جز یک " نام " که ما به یک فضای مخصوص ذخیره سازی اطلاعات داده ایم .
ذکر این نکته بسیارحائز اهمیت است که بدانیم صرفا ساخت یک متغیر با تعیین یک نام به منظور ذخیره سازی اطلاعات تنها کافی نمی باشد . زیرا سی شارپ برای ذخیره سازی اطلاعات انواع مختلفی از متغیرها را پیش بینی کرده که ما در اینجا به ذکر آنها می پردازیم.
1 . نوع انتگرال : شامل
int - uint - short - ushort - byte - sbyte - long - ulong - char
2 . نوع نقطه شناور : شامل float - double
3 . نوع دهدهی : شامل decimal
4 . نوع بولین : شامل Boolean
5 . enum : هر نوع متغیر از نوع انتگرالی را می پذیرد بجز char
6 . reference : شامل object - string - dynamic
7 . Nullable : شامل متغیرهایی است که می توانند Null یا خالی از محتوا باشند .
همانطور که مشاهده می کنید انواع حافظه دسته بندی شده تا بر حسب نیاز ، از هر کدام استفاده کنیم. برای معرفی هر کدام از این متغیرها باید بروش زیر طبق دستورالعمل سی شارپ عمل کنیم.بعنوان مثال در اینجا یک متغیر از نوع عدد صحیح (int) به نام X معرفی شده است.
int X ;
در خط بالا فقط یک متغیر از نوع عدد صحیح با نام X معرفی گردیده که البته هیچ مقداری هم به آن اختصاص داده نشده است.
برای اختصاص یک مقدار درست در هنگام معرفی این متغیر شبیه خط پائین عمل می کنیم .( مقدار عددی 5 به X اختصاص یافته )
int X = 5 ;
تذکر : int شامل بازه عددی بین منفی 2,147,483,648 تا مثبت 2,147,483,647 می باشد. و بقیه اعداد را شامل نمی شود.
namespace : یا فضای نام
راهی است برای جدا سازی و جلوگیری از تداخل مجموعه ای از اسامی کلاس ها ، متغییرها و ... که در یک برنامه وجود دارند .
اگر فرضا namespace وجود نداشته باشد ، ما در برنامه خود قادر به استفاده از اسامی مشابه نخواهیم بود البته این یکی از خواص فضای نام می باشد . مضافا اینکه با وجود namespace دیگر سیستم هنگام جستجو برای پیدا کردن مثلا یک متغییر مجبور به جستجو در کل برنامه نبوده و فقط فضای جاری را جستجو می کند و این بر افزایش سرعت برنامه بسیار موثر می باشد.
برای تعریف یک فضای نام از روش زیر استفاده می کنیم.
namespace namespace_name
{
// code declarations
}
برای فراخوانی هر کدام از اجزاء داخل یک فضا از روش زیر استفاده می شود
namespace_name.item_name;
شاید الآن خارج از تصور شما باشد که در سی شارپ هر چیزی می تواند یک آبجکت باشد و می تواند فضای نام داشته باشد
بعنوان مثال وقتی ما با دستور کنسول زیر از برنامه می خواهیم تا برای ما متنی را بنویسد در واقع از فضای نام سیستم استفاده برده ایم
Console.WriteLine ("Hello there");
در خط بالا ما نام سیستم را ننوشته ایم و آن هم بدلیل آن آست که نام سیستم در قسمت یوزینگ ها یک بار ذکر شده اگر شما یوزینگ سیستم را پاک کنید بایستی برای استفاده از هر کدام از زیر مجموعه های آن بشکل زیر عمل کنید
System.Console.WriteLine("Hello there");
در این پست لیست کاملی از کیوردهای رزرو شده در سی شارپ رو ملاحظه می کنید .
منظور از رزرو شده این است که شما در هنگام برنامه نویسی به زیان سی شارپ نمی توانید از این کلمات بعنوان " شناسه " استفاده کنید زیرا این کلمات قبلا به کمپایلر برنامه برای منظور خاصی معرفی شده اند و کمپایلر آنها را فقط با همان نقش می شناسد.
در اینجا ما قصد نداریم به همین ترتیبی که این اسامی ذکر شده اند و با توضیح تک تک آنها به شما برنامه نویسی یاد دهیم زیرا به این ترتیب شما نه تنها چیزی از برنامه نویسی یاد نمی گیرید بلکه با اینکار سردرگم هم می شوید. زیرا این کلمات هر کدام مربوط به بخشی از برنامه نویسی است که از نظر مفهوم و کاربرد ارتباطی با همدیگر ندارند و آموزش آنها به این ترتیب به نوعی از این شاخه به آن شاخه پریدن است لذا همان گونه که در بالا ذکر شد فقط بدانید که این کلمات بخشی از کلمات رزرو شده می باشد.
البته ناگفته نماند که در واقع سی شارپ راهکاری هم برای آنکه شما در صورت لزوم بتوانید از این کلمات بعنوان " شناسه " نیز استفاده کنید قرار داده و آن هم استفاده از علامت @ قبل آن کلمه می باشد.
مثلا کلمه رزرو شده Class را شما در صورت تمایل می توانید بصورت Class@ نوشته و از آن استفاده کنید .
ولی بهتر است برای بالا بردن خوانایی برنامه از این روش نیز کمتر استفاده کنید .
abstractdoinprotectedtrueasdoubleintpublictrybaseelseinterfacereadonlytypeofboolenuminternalrefuintbreakeventisreturnulongbyteexplicitlocksbyteuncheckedcaseexternlongsealedunsafecatchfalsenamespacenamespaceshortushortcharfinallynewsizeofusingcheckedfixednullstackallocvirtualclassfloatobjectstaticvoidconstforoperatorstringvolatilecontinueforeachoutstructwhiledecimalgotooverrideswitchdefaultifparamsthisdelegateimplicitprivatethrow
تعدادی از کیوردها موسوم به کیوردهای متنی می توانند بدون استفاده از علامت (@) بعنوان شناسه بکار بروند لیست این کیوردها در پایین آمده است. orderbyin dynamicaddletgetawaitvarpartial intoequalsascendingjoinfromasync whenyieldselectwhereremovesetnameofglobalbyvalueongroupdescending
برای مواقعی که نمیخواهید از IDE
برای اجرای برنامه سیشارپ استفاده کنید، میتونید اون رو بهصورت
دستی کمپایل و اجرا کنید.
کمپایلر سیشارپ csc.exe است
که کد شما رو به فایل اجرایی تبدیل میکنه. برای این کار، میتونید از یک بچ فایل
(فایلی با پسوند bat که
در Notepad نوشته میشه)
استفاده کنید.
اگه نام فایلتون MyProgram.cs باشه، بچ فایل
رو اینطوری بنویسید:
csc MyProgram.cs
MyProgram.exe
بعد از ذخیره بچ فایل با پسوند bat و
قرار دادنش کنار فایل MyProgram.cs ، کافیه روی اون دبلکلیک
کنید تا هم کمپایل بشه و هم برنامه اجرا بشه.
نکته : مطمئن بشید که csc.exe در PATH سیستم
باشه یا مسیر کاملش رو در بچ فایل بنویسید.