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@ نوشته و از آن استفاده کنید .
ولی بهتر است برای بالا بردن خوانایی برنامه از این روش نیز کمتر استفاده کنید .
abstract
do
in
protected
true
as
double
int
public
try
base
else
interface
readonly
typeof
bool
enum
internal
ref
uint
break
event
is
return
ulong
byte
explicit
lock
sbyte
unchecked
case
extern
long
sealed
unsafe
catch
false
namespace
namespace
short
ushort
char
finally
new
sizeof
using
checked
fixed
null
stackalloc
virtual
class
float
object
static
void
const
for
operator
string
volatile
continue
foreach
out
struct
while
decimal
goto
override
switch
default
if
params
this
delegate
implicit
private
throw
تعدادی از کیوردها موسوم به کیوردهای متنی می توانند بدون استفاده از علامت (@) بعنوان شناسه بکار بروند لیست این کیوردها در پایین آمده است.
orderby
in
dynamic
add
let
get
await
var
partial
into
equals
ascending
join
from
async
when
yield
select
where
remove
set
nameof
global
by
value
on
group
descending
برای مواقعی که نمیخواهید از IDE
برای اجرای برنامه سیشارپ استفاده کنید، میتونید اون رو بهصورت
دستی کمپایل و اجرا کنید.
کمپایلر سیشارپ csc.exe است
که کد شما رو به فایل اجرایی تبدیل میکنه. برای این کار، میتونید از یک بچ فایل
(فایلی با پسوند bat که
در Notepad نوشته میشه)
استفاده کنید.
اگه نام فایلتون MyProgram.cs باشه، بچ فایل
رو اینطوری بنویسید:
csc MyProgram.cs
MyProgram.exe
بعد از ذخیره بچ فایل با پسوند bat و
قرار دادنش کنار فایل MyProgram.cs ، کافیه روی اون دبلکلیک
کنید تا هم کمپایل بشه و هم برنامه اجرا بشه.
نکته : مطمئن بشید که csc.exe در PATH سیستم
باشه یا مسیر کاملش رو در بچ فایل بنویسید.