آموزش متغیرها در سی شارپ
یک متغیر را می توان با یک سلول حافظه مقایسه کرد؛ و استفاده از آن برای هر برنامه نویس الزامی است. در سی شارپ؛ یک متغیر به صورت زیر مطرح می شود:
<data type> <name>
یک مثال از متغیرها را می توان به صورت زیر بیان کرد:
string name;
این متداول ترین نوع متغیرها است؛ اما متغیر هنوز مقدار ندارد. شما می توانید در همان نقطه یا بعداً هنگامی که آن را بیان می کنید؛ مانند زیر یک مقدار به آن متغیر تخصیص بدهید:
<data type> <name> = <value>;
اگر این متغیر در آن متدی که در حال حاضر روی آن کار می کنید؛ عضو نباشد، شما ممکن است بخواهید یک visibility (آشکار بودن سطح دسترسی) را به متغیر تخصیص بدهید.
<visibility> <data type> <name> = <value>;
و مثال کامل آن به صورت زیر می باشد:
private string name = “John Doe”;
بخش visibility مربوط به کلاس ها می باشد، بنابراین می توانید توضیح کاملتری از آن در فصل مربوط به کلاس ها پیدا کنید. بیایید با یک مثال در واقع از یک جفت از متغیرها استفاده می کنیم؛ روی قسمت متغیر متمرکز شویم:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string firstName = “John”;
string lastName = “Doe”;Console.WriteLine(“Name: ” + firstName + ” ” + lastName);
Console.WriteLine(“Please enter a new first name:”);
firstName = Console.ReadLine();Console.WriteLine(“New name: ” + firstName + ” ” + lastName);
برنامه نویسی سی شارپ رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی با ساخت اپلیکیشن، توسعه وب ... دانلود:
Console.ReadLine();
}
}
}
خوب ، بسیاری از این موارد قبلاً توضیح داده شده است ، بنابراین مستقیماً به قسمت جالب خواهیم پرداخت. اول از همه ، ما چند متغیر از نوع رشته ای را اعلام می کنیم. همانطور که می بینید، یک رشته به سادگی یک متن را شامل می شود، زیرا ما فوراً به آنها مقدار می دهیم. سپس ، ما یک خط از متن را به کنسول می رسانیم، که در آن از دو متغیر استفاده می کنیم. رشته با استفاده از کاراکترهای + برای “جمع آوری” قسمت های مختلف ساخته می شود.
در مرحله بعد ، از کاربر می خواهیم نام جدید را وارد کند ، و سپس از روش ()ReadLine برای خواندن ورودی کاربر از کنسول استفاده می کنیم و آن را به متغیر firstName وارد می کنیم. هنگامی که کاربر کلید Enter را فشار داد ، اولین نام جدید به متغیر اختصاص داده می شود و در سطر بعدی باز هم ارائه نام را برای نشان دادن تغییرات؛ در خروجی قرار می دهیم. ما اکنون از اولین متغیر و مهمترین ویژگی یک متغیر استفاده کرده ایم: امکان تغییر مقدار آن در زمان اجرا.
مثال جالب دیگری از این موضوع، حل سؤالات ریاضی است. در ادامه می توانید یک مثال از حل ریاضیات با کمک سی شارپ را مشاهده کنید که بر اساس همان کدی است که تا کنون استفاده کرده ایم.
int number1, number2;
Console.WriteLine(“Please enter a number:”);
number1 = int.Parse(Console.ReadLine());Console.WriteLine(“Thank you. One more:”);
number2 = int.Parse(Console.ReadLine());Console.WriteLine(“Adding the two numbers: ” + (number1 + number2));
Console.ReadLine();
این را در متد اصلی خود قرار داده و آن را امتحان می کنیم. تنها “ترفند” جدیدی که ما در اینجا استفاده می کنیم، متد int.Parse() است. این متد فقط یک رشته را می خواند و آن را به یک عدد صحیح تبدیل می کند. همانطور که مشاهده می کنید ، این برنامه هیچ تلاشی برای اعتبارسنجی ورودی کاربر نمی کند، و اگر چیزی را وارد کنید که یک عدد نباشد، یک استثنا مطرح می شود. اطلاعات بیشتر در این مورد را در آینده بررسی می کنیم.
متغیرها و دامنه
تاکنون فقط از متغیرهای محلی استفاده کرده ایم که متغیرهایی هستند که درون همان متد تعریف شده و استفاده می شوند. درسی شارپ ، یک متغیر تعریف شده در داخل یک متد را نمی توان خارج از این متد به کار گرفت – به همین دلیل به آن محلی گفته می شود. اگر با سایر زبان های برنامه نویسی آشنا باشید، ممکن است درباره متغیرهای سراسری نیز اطلاعات داشته باشید، که می توانید از مکان های بیشتری به آنها دسترسی پیدا کنید ، اما سی شارپ از مفهوم متغیرهای سراسرس پشتیبانی نمی کند. درعوض می توانید یک فیلد را روی یک کلاس تعریف کنید که از همه روش های این کلاس قابل دسترسی هستند. اجازه دهید این موضوع را با یک مثال نشان دهیم:
using System;
namespace VariableScope
{
class Program
{
private static string helloClass = “Hello, class!”;static void Main(string[] args)
{
string helloLocal = “Hello, local!”;
Console.WriteLine(helloLocal);
Console.WriteLine(Program.helloClass);
DoStuff();
}static void DoStuff()
{
Console.WriteLine(“A message from DoStuff: ” + Program.helloClass);
}
}
}
به عضو helloClass توجه کنید که به جای آن که درون یک متد بیان شود؛ در دامنه کلاس اعلام شده است – این به ما این امکان را می دهد تا هم از متد ()Main و همچنین متد () DoStuff خود به آن دسترسی داشته باشیم. این امر در مورد متغیر helloLocal ما که در داخل متد ()Main اعلام شده، صحیح نیست و بنابراین فقط در داخل این روش خاص قابل استفاده است.
مفهوم تمایز بین جایی که یک متغیر اعلام شده است، محدوده بندی نامیده می شود و از آنجایی که متغیرها می توانند در خیلی جاها تغییر کنند؛ این امر از سردرگمی های بیش از حد جلوگیری می کند. تکنیک دیگری که ما را در این امر یاری می کند؛ visibility اعضا است (در این مورد با کلیدواژه private نشان داده می شود) ، که در فصل مربوط به کلاس ها صحبت خواهیم کرد.
خلاصه
متغیرها به شما اجازه می دهد تا انواع متفاوت داده ها برای مثال، رشته های متنی، اعداد یا اشیاء سفارشی را ذخیره کنید. متغیرهای محلی وجود دارند؛ که از درون متدی قابل دسترسی هستند که در آن تعریف شده است؛ و سپس فیلدهای کلاس وجود دارند که اگر ویژگی visibility اجازه بدهد؛ می توان از تمام متدهای کلاس و حتی از خارج از کلاس به آنها دسترسی پیدا نمود.