دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

دامنه متغیرهای عددی Value Type

در این پست دامنه انواع متغیر را بیان می کنیم . دانستن این دامنه ها به ما کمک می کند تا در هنگام استفاده از آنها برای منظور خود ، نوع درستی از متغیر را بکار گیریم تا هم برنامه ما هنگام اجرا دچار خطا های پیدا و پنهان نگردد و هم اینکه از هدر رفت منابع جلوگیری شود .مثلا اگر در برنامه ما داشتن یک متغیر از نوع 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

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 namespace_name
{
// code declarations
}
برای فراخوانی هر کدام از اجزاء داخل یک فضا از روش زیر استفاده می شود

namespace_name.item_name;

شاید الآن خارج از تصور شما باشد که در سی شارپ هر چیزی می تواند یک آبجکت باشد و می تواند فضای نام داشته باشد بعنوان مثال وقتی ما با دستور کنسول زیر از برنامه می خواهیم تا برای ما متنی را بنویسد در واقع از فضای نام سیستم استفاده برده ایم

Console.WriteLine ("Hello there");

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

System.Console.WriteLine("Hello there");

لیست کامل کیوردهای رزرو شده در سی شارپ full list of C# reserved keywords:

در این پست لیست کاملی از کیوردهای رزرو شده در سی شارپ رو ملاحظه می کنید .

منظور از رزرو شده این است که شما در هنگام برنامه نویسی به زیان سی شارپ نمی توانید از این کلمات بعنوان " شناسه "  استفاده کنید زیرا این کلمات قبلا به کمپایلر برنامه برای منظور خاصی معرفی شده اند و کمپایلر آنها را فقط با همان نقش می شناسد.

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

البته ناگفته نماند که در واقع سی شارپ  راهکاری هم برای آنکه شما در صورت لزوم بتوانید از این کلمات بعنوان " شناسه " نیز استفاده کنید قرار داده و آن هم استفاده از علامت @ قبل آن کلمه می باشد.

مثلا کلمه رزرو شده Class را شما در صورت تمایل می توانید بصورت Class@ نوشته و از آن استفاده کنید .

ولی بهتر است برای بالا بردن خوانایی برنامه از این روش نیز کمتر استفاده کنید .

                                                

abstractdoinprotectedtrue
asdoubleintpublictry
baseelseinterfacereadonlytypeof
boolenuminternalrefuint
breakeventisreturnulong
byteexplicitlocksbyteunchecked
caseexternlongsealedunsafe
catchfalsenamespacenamespaceshort
ushortcharfinallynewsizeof
usingcheckedfixednullstackalloc
virtualclassfloatobjectstatic
voidconstforoperatorstring
volatilecontinueforeachoutstruct
whiledecimalgotooverrideswitch
defaultifparamsthisdelegate
implicitprivatethrow

                  
تعدادی از کیوردها موسوم به کیوردهای متنی می توانند بدون استفاده از علامت (@) بعنوان شناسه بکار بروند لیست این کیوردها در پایین آمده است.
orderbyin dynamicadd
letgetawaitvar
partial  intoequalsascending
joinfromasync when
yieldselectwhereremove
setnameofglobalby
valueongroupdescending