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

فهرست مطالب این نوشته
997696

در این مطلب از مجله فرادرس با انواع متغیر در سی شارپ آشنا می‌شویم. ابتدا این متغیرها را معرفی کرده و سپس روش پیاده‌سازی و استفاده از آن‌ها را با کمک مثال‌های کدنویسی شده بررسی خواهیم کرد. در بخش‌های انتهایی مطلب هم سینتکس ساده تعریف متغیر و روش‌های مقداردهی به آن‌ را بررسی می‌کنیم.

انواع متغیر در سی شارپ چه هستند؟

متغیرهای سی شارپ را می‌‌توان به چند دسته کلی تقسیم کرد. در فهرست زیر نام انواع متغیرهای سی شارپ را نوشته‌ایم.

  • متغیرهای محلی
  • متغیرهای نمونه یا متغیرهای غیراستاتیک
  • متغیرهای استاتیک یا متغیرهای کلاسی
  • متغیرهای ثابت
  • متغیرهای فقط خواندنی
انواع متغیر در سی شارپ
انواع متغیر در سی شارپ

آشنایی با انواع متغیر در سی شارپ از مباحث پایه و مقدماتی این زبان است. در صورت نیاز به گذراندن دوره‌های مقدماتی، پیشنهاد می‌کنیم که فیلم آموزش برنامه نویسی سی شارپ، دوره مقدماتی را از فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار داده‌ایم.

در ادامه مطلب تمام متغیرهای نام برده شده در فهرست بالا را یک به یک معرفی کرده‌ایم.

متغیرهای محلی

متغیر محلی، متغیری است که درون بلوک یا متد خاصی تعریف می‌شود. متغیرهای محلی را می‌‌توان به شکل «سازنده» (Constructor) هم تعریف کرد.

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

مثال‌ درباره متغیرهای محلی

در کادر زیر مثالی را درباره تعریف و استفاده متغیر محلی را پیاده‌سازی کرده‌ایم. بعد از این مثال، نمونه‌ کدی هم برای نمایش روش غلط استفاده از متغیر محلی نوشته‌ایم.

بعد از اجرای کدهای بالا، خروجی به شکل زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

Student age is : 10

در برنامه بالا متغیر age  به صورت محلی تعریف شده است. این متغیر در داخل تابع StudentAge()  قرار دارد و فقط هم در داخل این تابع قابل استفاده است. اگر از متغیر age  بیرون از تابع StudentAge()  استفاده کنیم، کامپایلر پیغام خطا می‌دهد.

روش استفاده غلط از متغیر محلی و برگشت دادن پیغام خطا را در کدهای زیر شبیه‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا، پیغام خطای زیر در خروجی چاپ می‌شود.

prog.cs(22,43): error CS0103: The name `age’ does not exist in the current context

چگونه با کمک فرادرس سی شارپ را یاد بگیریم؟

فرادرس، برای آموزش سی شارپ منابع متفاوتی را تهیه کرده است. از مطالب مجله گرفته تا فیلم‌های آموزشی متنوع در دسترس مخاطبان فرادرس قرار دارند. زبان برنامه‌نویسی #C، زبانی مدرن، شیء گرا و چندمنظوره‌ است. به همین دلیل، افراد زیادی با هدف تامین آینده شغلی خود، علاقه‌مند به یادگیری سی شارپ هستند. فیلم‌های آموزشی فرادرس به شکل بسیار کامل‌ و همراه با مثال‌های کدنویسی تولید شده‌اند. استفاده از این فیلم‌ها کیفیت یادگیری را به میزان زیادی افزایش می‌دهد.

مجموعه آموزش برنامه نویسی سی شارپ C#‎ – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی سی شارپ هدایت شوید.

داشتن توانایی کار با زبان سی شارپ، موقعیت‌های شغلی متنوعی را در مقابل افراد قرار می‌دهد. به همین دلیل، افراد زیادی به دنبال پیدا کردن محتوای کاربردی و با کیفیت برای یادگیری سی شارپ هستند. در فهرست زیر، چند فیلم‌ آموزشی درباره زبان برنامه نویسی سی شارپ را معرفی‌ کرده‌ایم. این فیلم‌ها توسط فرادرس تولید شده‌اند. برای دیدن فیلم‌های بیشتر بر روی تصویر بالا کلیک کنید.

در بخش بعدی مطلب، متغیرهای نمونه یا غیراستاتیک را بررسی کرده‌ایم.

متغیرهای نمونه یا متغیرهای غیراستاتیک

متغیرهای نمونه، متغیرهایی هستند که به صورت غیراستاتیک در داخل کلاس تعریف می‌شوند. ولی داخل هیچ متد یا سازنده‌ای قرار ندارند. متغیرهای نمونه را باید خارج از متدها، سازنده‌ها یا بلوک‌های درون کلاس تعریف کرد. از آنجا که متغیرهای نمونه در داخل کلاس‌ها تعریف می‌شوند، با هربار ساخته شدن شیئی از کلاس این متغیرها نیز ساخته می‌شوند. به همین‌ ترتیب با نابود شدن شیء ساخته شده، متغیرهای مربوط به آن نیز نابود می‌شوند. برعکس متغیرهای محلی، برای تعریف کردن متغیرهای نمونه می‌توانیم از «مشخص‌کننده‌های دسترسی» (Access Specifiers) استفاده کنیم.

مثالی درباره استفاده از متغیرهای نمونه

در کد زیر مثال ساده‌ای درباره تعریف و استفاده از متغیرهای نمونه را پیاده‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

Marks for first object:
90
80
93
Marks for second object:
95
70
90

در برنامه بالا، متغیرهای engMarks  و mathsMarks  و phyMarksare  از نوع متغیرهای نمونه هستند. اگر از کلاس تعریف شده در برنامه بالا، چندین شیء مختلف بسازیم، هرکدام از این اشیا نسخه کپی از متغیرهای نمونه مخصوص به خود را خواهند داشت. با توجه به خروجی برنامه می‌‌توان تشخیص داد که متغیرهای نمونه هر شیء مخصوص به همان شیء هستند و با دیگر متغیرهای نمونه تداخلی ندارند.

رشته‌ایی بین صفحات مختلف نرم‌‌افزار مانند متغیرهای حافظه ارتباط برقرار کرده‌اند.

متغیرهای استاتیک یا متغیرهای کلاسی

متغیرهای Static یکی دیگر از انواع متغیر در سی شارپ هستند. این موارد به عنوان متغیرهای کلاسی هم شناخته می‌شوند. برای تعریف متغیر Static دو روش وجود دارد.

  • متغیر به شکلی صریح و با استفاده از کلمه کلیدی Static تعریف شود.
  • یا اینکه متغیر در بلوک استاتیک تعریف شود.

در هر کدام از حالت‌های بالا این متغیرها به عنوان متغیر استاتیک شناخته می‌شوند. متغیرهای استاتیک ویژگی‌های خاصی دارند. این ویژگی‌ها را در فهرست زیر نوشته‌ایم.

  • متغیرهای استاتیک، تقریبا شبیه به متغیرهای نمونه تعریف می‌شوند. تنها تفاوت اینجاست که متغیرهای استاتیک را با استفاده از کلمه کلیدی Static تعریف می‌کنیم. این متغیرها نیز باید درون کلاس و خارج از متدها، سازنده‌ها یا سایر بلوک‌های کد تعریف شوند.
  • برعکس متغیرهای نمونه، به ازای هر کلاس، فقط یک نسخه از متغیرهای استاتیک ساخته می‌‌شود. این مسئله به تعداد اشیا ساخته شده از کلاس هیچ ربطی ندارد.
  • متغیرهای استاتیک در لحظه شروع اجرای برنامه ساخته می‌شوند. این متغیرها به شکل خودکار همزمان با پایان اجرای برنامه هم نابود می‌شوند.

نکته: برای دسترسی به متغیرهای کلاسی، لازم نیست از کلاس مورد نظر، شیء بسازیم. به سادگی و با استفاده از نام کلاس می‌توانیم به متغیرهای استاتیک – کلاسی – دسترسی داشته باشیم.

مثالی برای استفاده از متغیرهای استاتیک

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

بعد از اجرای کدهای بالا خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

Aks's average salary:100000

نکته: مقداردهی اولیه متغیرهای غیراستاتیک با ساخت نمونه و فراخوانی سازنده به شکل همزمان انجام می‌شود. یعنی اینکه متغیرهای غیراستاتیک می‌توانند همزمان با فراخوانی سازنده، مقداردهی شوند. اما متغیرهای استاتیک را با کمک سازنده مقداردهی نمی‌کنیم. زیرا با هر بار فراخوانی سازنده، مقدار درون این متغیر نیز بازنویسی می‌شود.

تفاوت بین متغیرهای نمونه و استاتیک

باید به تفاوت‌های بین متغیرهای نمونه و متغیرها استاتیک توجه کنیم. این دو متغیر هر کدام کاربردهای خاص خود را دارند. بنابراین تفاوت‌های مهمی بین این دو وجود دارد. در فهرست زیر، مهم‌ترین تفاوت‌های بین متغیرهای نمونه و استاتیک را نوشته‌ایم.

  • هر شیء، نسخه‌ای از متغیر نمونه مخصوص به خود را دارد. در حالی که در هر کلاس فقط یک نسخه از متغیرهای استاتیک وجود دارد. هر چقدر هم که تعداد اشیا ساخته شده از کلاس زیاد باشد، تعداد متغیر استاتیک بیشتر نمی‌شود.
  • تغییرات انجام داده شده در متغیرهای نمونه، فقط بر روی همان شیء تاثیر می‌گذارد. یعنی این تغییرات بر مقدار بقیه متغیرهای نمونه سایر اشیا هیچ تاثیری ندارد. اما درباره متغیرهای استاتیک، هر تغییری که در مقدار این متغیرها روی بدهد، در متغیر استاتیک تمام اشیا نشان داده می‌شود. زیرا متغیر استاتیک بین تمام اشیا ساخته شده از کلاس مشترک است.
  • با کمک اشیا ساخته شده از کلاس‌ها می‌‌توانیم به متغیرهای نمونه آن کلاس دسترسی داشته باشیم. اما برای دسترسی به متغیرهای استاتیک فقط از نام خود کلاس استفاده می‌کنیم.
  • در طول عمر هر کلاس، متغیرهای استاتیک یک بار و فقط یک بار ساخته شده و مقداردهی اولیه می‌شوند. در حالی که اگر هیچ شیئی از کلاس ساخته نشود، هیچ متغیر نمونه‌ای هم ساخته نخواهد شد. به همین ترتیب اگر از روی کلاسی «N» شیء مجزا از هم ساخته شوند، N عدد متغیر نمونه‌ هم به ازای هر شی ساخته خواهد شد.
یک لپتاپ باز با صفحه کدنویسی بر روی میز چوبی - انواع متغیر در سی شارپ

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

در کادر زیر، سینتکس مربوط به متغیرهای نمونه و استاتیک را پیاده‌سازی کرده‌ایم.

متغیرهای ثابت

اگر متغیری با استفاده از کلمه کلیدی const  ساخته شود به این متغیر، متغیر ثابت گفته می‌شود. متغیرهای ثابت بعد از ساخته شدن، دیگر قابل تغییر نیستند. یعنی مقدار آن‌ها را نمی‌توان تغییر داد. بنابراین لازم است که این متغیرها را همزمان با تعریف مقداردهی اولیه هم بکنیم.

مثالی درباره پیاده‌سازی و استفاده از متغیر ثابت

در کادر زیر، متغیر ثابتی را به روش غلط تعریف کرده‌ایم . در نتیجه این کد، خطا برمی‌گرداند. زیرا در زمان تعریف متغیر ثابت آن را مقداردهی نکردیم.

بعد از اجرای کد بالا، پیغام خطای زیر در کنسول نمایش داده می‌شود.

prog.cs(8,17): error CS0145: A const field requires a value to be provided 

در کدهای زیر، برنامه‌ای را نوشته‌ایم که در آن متغیر ثابتی تعریف شده است. سپس از این متغیر ثابت، استفاده کرده‌ایم.

بعد از اجرای کد بالا، نتیجه زیر تولید شده و در کنسول نمایش داده می‌شود.

The value of a is = 10
The value of b is = 20
The value of max is = 50

درباره استفاده از متغیرهای ثابت، نکات مهمی وجود دارند که در فهرست زیر نوشته‌ایم.

  • رفتار متغیرهای ثابت شبیه به رفتار متغیرهای استاتیک است. یعنی اینکه یک بار و فقط یک بار در طول عمر کلاس، مقداردهی می‌شوند.
  • برای مقداردهی و دسترسی به مقادیر ذخیره شده در این متغیرها نیازی به استفاده از اشیا ساخته شده از کلاس نداریم.
  • تفاوت مهم بین متغیرهای ثابت و متغیرهای استاتیک اینجا است که در طول زمان اجرای برنامه می‌توان مقدار درون متغیرهای استاتیک را تغییر داد. اما مقدار متغیرهای ثابت را بعد از تعریف شدن نمی‌توان تغییر داد.
استوانه‌های تپل و نورانی نمونه‌ای انبارهای نگهداری داده

متغیرهای فقط خواندنی

نوع دیگر متغیرهای سی شارپ، متغیرهای «فقط خواندنی» (Readonly) هستند. اگر متغیری با استفاده از کلمه کلیدی readonly  تعریف شد، به متغیر فقط خواندنی تبدیل می‌شود. مقدار این متغیرها مانند متغیرهای ثابت – بعد از مقداردهی اولیه – امکان تغییر ندارند.

  • مقداردهی اولیه متغیرهای فقط خواندنی در زمان تعریف متغیر الزامی نیست. این متغیرها را می‌توان همزمان با فراخوانی سازنده هم مقداردهی کرد.
  • مقداردهی متغیرهای فقط خواندنی شبیه به مقداردهی متغیرهای غیراستاتیک است. یعنی اینکه این متغیرها را فقط بعد از ساخت نمونه از کلاس می‌توان مقداردهی کرد.
  • برای هر شیء که از کلاسی ساخته می‌شود، یک متغیر فقط خواندنی هم ساخته خواهد شد.

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

مثال‌هایی درباره پیاده‌سازی و استفاده از متغیرهای فقط خواندنی

در برنامه زیر، متغیر فقط خواندنی k مقداردهی اولیه نشده است. اما وقتی که مقدار متغیر را چاپ می‌کنیم، مقدار پیش‌فرض نوع «Int»، یعنی عدد صفر 0  چاپ می‌شود.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

The value of a is = 80
The value of b is = 40
The value of max is = 50
The value of k is = 0

در کدهای زیر، روش مقداردهی متغیرهای فقط خواندنی را همزمان با فراخوانی سازنده کلاس پیاده‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

The value of a is = 80
The value of b is = 40
The value of max is = 50
The value of k is = 90

در برنامه زیر، مقداردهی متغیر فقط خواندنی، پس از ساخت شیء از کلاس انجام شده است. این متغیر خارج از سازنده کلاس، تعریف و مقداردهی شده‌ است.

بعد از اجرای کدهای بالا، پیغام خطای زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

prog.cs(41,13): error CS0191: A readonly field `Geeks.k’ cannot be assigned to (except in a constructor or a variable initializer) 

در کدهای بالا، متغیر فقط خواندنی k  در خط this.k = 90;  مقداردهی شده است. اما در انتهای برنامه یک بار هم در خط obj.k = 55;  مقدار این متغیر را تغییر داده‌ایم. این کد باعث بروز خطا شده است. زیرا متغیر k  فقط خواندنی بوده و امکان مقداردهی دوباره به آن وجود ندارد.

سه دختر کارتونی پشت سر یک مانیتور بزرگ ایستاده‌اند.

درباره متغیرهای فقط خواندنی نکات مهمی وجود دارند که باید به آن‌ها توجه کنیم.

  • تنها تفاوت بین متغیرهای فقط خواندنی و متغیرهای نمونه در این است که مقدار متغیرهای نمونه را بعد از ساخت می‌توان تغییر داد. اما مقدار متغیرهای فقط خواندنی، بعد از مقداردهی اولیه، دیگر قابل تغییر نیست.
  • متغیر ثابت، مقداری بدون تغییر برای کل کلاس است. اما متغیرهای فقط خواندنی، مقداری بدون تغییر برای هر کدام از اشیا ساخته شده از کلاس هستند.

چگونه با کمک فیلم‌های فرادرس انجام پروژه سی شارپ را یاد بگیریم؟

فرادرس با ارائه مجموعه‌ای از فیلم‌های آموزشی پروژه‌محور در زمینه سی شارپ، یادگیری مهارت‌های کاربردی را ساده‌تر کرده است. زبان C#‎ در صنایع مختلفی مانند توسعه وب‌اپلیکیشن‌ها، نرم‌افزارهای دسکتاپ و بازی‌سازی کاربرد دارد. با تماشای این فیلم‌ها می‌توانید نمونه‌کارهای حرفه‌ای و متنوعی بسازید و رزومه‌ خود را تقویت کنید. فیلم‌های این مجموعه، تمام مراحل طراحی و پیاده‌سازی پروژه‌های واقعی را از صفر تا صد آموزش می‌دهند. در ادامه، چند فیلم پروژه‌محور از فرادرس را معرفی کرده‌ایم.

برای دیدن سایر فیلم‌ها بر روی تصویر زیر کلیک کرده و به صفحه اصلی این مجموعه آموزشی هدایت شوید.

قطعات پازلی که بر روی میز کامپیوتر قرار گرفته‌اند.
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه‌محور سی شارپ هدایت شوید.

روش تعریف انواع متغیر در سی شارپ

در این بخش از مطلب، نگاه کلی به روش تعریف انواع متغیر در سی شارپ داریم. گاهی از اوقات در زمان اجرای برنامه، کاربر مقدار جدیدی به برنامه وارد می‌کند. این مقدار ممکن است در فرایند عملیاتی برنامه استفاده شده یا به صورت موقت در حافظه اصلی – RAM – ذخیره شود. متغیرهای ذخیره شده در این حافظه معمولا در طول زمان اجرای برنامه استفاده می‌شوند.

در پایین، ساده‌ترین حالت سینتکس مربوط به تعریف متغیرها را نشان داده‌ایم.

در کادر بالا، سه پارامتر type و variable_name و value قابل مشاهده هستند. این پارامترها را در بخش بعدی معرفی کرده‌ایم.

مشخصات متغیرها

هر متغیری از سه مشخصه اصلی تشکیل شده است.

  • نام: هر متغیری باید نام مشخص و معتبری داشته باشد. در کادر بالا پارامتر variable_name نشان‌دهنده نام متغیر است.
  • نوع: نوع متغیر، بسته به نوع اطلاعاتی است که می‌خواهیم در آن ذخیره کنیم. در مثال بالا پارامتر type نشان دهنده نوع این متغیر است.
  • مقدار: «مقدار» (value) همان داده واقعی است که می‌خواهیم در متغیر ذخیره کنیم.
مشخصات متغیرها

قوانین مربوط به نام‌گذاری متغیرها در سی شارپ

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

  • نام متغیر می‌تواند شامل حروف الفبای «a» تا «z» و «A» تا «Z» و ارقام «0» تا «9» و همین‌طور کاراکتر خط زیر «_» باشد.
  • نام متغیر نمی‌تواند با استفاده از اعداد شروع شود.
  • برای انتخاب نام‌ متغیرها نباید از هیچ کدام از کلمه‌های کلیدی زبان برنامه نویسی سی شارپ مانند int  و float  و null  و String و غیره استفاده کنیم.

در جدول زیر نمونه‌ای از نام‌های معتبر و نامعتبر متغیرها را نشان داده‌ایم.

نام‌های معتبر متغیرها نام‌های نامعتبر برای متغیرها
int age; int if;
float _studentname; float 12studentname;

تعریف و ساخت متغیر

در زمان تعریف متغیرها باید به قوانین خاص این کار توجه کرد. در فهرست زیر این قوانین را توضیح داده‌ایم.

  • نوع متغیر را مشخص کنید. برای مثال متغیر از نوع Int است.
  • نام متغیر را مشخص کنید. برای مثال، نام متغیر را age  می‌گذاریم.
  • می‌توانید به متغیر مقداردهی بکنید. برای مثال مقدار ۱۷ را به آن اختصاص می‌دهیم.

در کادر پایین، دو متغیر مجزا از هم را تعریف کرده‌ایم.

قبل از بررسی روش تعریف، مقداردهی و استفاده از متغیرها، باید متوجه باشیم که هر متغیری نوع مشخصی دارد.

مقداردهی اولیه متغیر

واژه «مقداردهی اولیه» (Initializing) به معنی اختصاص دادن مقدار مشخصی به متغیر است. در واقع استفاده اصلی از متغیر بعد از مقداردهی اولیه به آن‌ شروع می‌شود. درباره مقداردهی اولیه باید به دو نکته مهم توجه کنیم.

  • در زبان سی شارپ، هر نوعی، مقداری به عنوان پیش‌فرض دارد. اگر متغیری تعریف شود ولی مقداردهی نشود، مقدار پیش‌فرض آن نوع به متغیر اختصاص می‌یابد. برای مثال، مقدار پیش‌فرض نوع «Int» صفر است.
  • برای مقداردهی به متغیرها، هم می‌توان این کار را همزمان با تعریف متغیر انجام داد و هم به صورت جداگانه و در بخش‌های دیگری از برنامه. این دو روش را در بخش بعدی توضیح داده‌ایم.
مردی در بین چند در مختلف در دنیای دیجیتالی استاده است. - انواع متغیر در سی شارپ

در کادر زیر، مثالی را درباره مقداردهی اولیه متغیر، نوشته‌ایم.

در مثال بالا متغیر y  را همزمان با تعریف مقداردهی کردیم. اما متغیر x  را ابتدا تعریف کرده و سپس در خط‌های بعدی مقداردهی کرده‌ایم.

دو روش مقداردهی به متغیرها

دو روش اصلی برای مقداردهی به متغیرها وجود دارد. این دو روش را در فهرست زیر معرفی کرده‌ایم.

  • «مقداردهی در زمان کامپایل» (Compile Time Initialization)
  • «مقداردهی در زمان اجرا» (Run Time Initialization)

مقداردهی در زمان کامپایل

مقداردهی در زمان کامپایل به این معناست که همزمان با کامپایل شدن کد، مقدار متغیر نیز مشخص شده باشد. البته اگر برنامه نویس مقدار مشخصی برای متغیر تعیین نکند، کامپایلر از مقادیر پیش‌فرض مربوط به نوع متغیر برای مقداردهی به آن استفاده می‌کند. این نوع مقداردهی وقتی موثر است که برنامه نویس بخواهد از مقداری به عنوان پیش‌فرض برای متغیرهای خود استفاده کند.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده می‌شود.

Value of x is 32
Value of y is 0

مقداردهی در زمان اجرا

معمولا در این نوع مقداردهی، مقدار مورد نظر برای متغیر توسط کاربر وارد می‌شود. برنامه مقداری را از کاربر دریافت کرده و به صورت خودکار به متغیر مشخص شده اختصاص می‌دهد. در این نوع مقداردهی، ممکن است کاربر هر مقداری را برای متغیر وارد کند. این روش مقداردهی‌ معمولا به شکل فراخوانی توابع انجام می‌شود.

مکعب شناور با نمایش کدنویسی که از زیر آن نور می‌آید.

در کادر زیر، برنامه نوشته شده منتظر می‌ماند تا کاربر عددی را وارد کند. سپس مقدار وارد شده توسط کاربر را در خروجی چاپ می‌کند.

بعد از اجرای کدهای بالا، با فرض اینکه کاربر در ورودی عدد 45  را وارد کند، خروجی زیر در کنسول سی شارپ نمایش داده می‌شود.

Value of num is 45

در برنامه بالا، کد Console.ReadLine() از کاربر می‌خواهد که مقداری را وارد کند. سپس مقدار وارد شده را به متغیر num  اختصاص می‌دهد. در نهایت هم مقدار موجود در متغیر num  را خوانده و در کنسول سی شارپ نمایش می‌دهد.

توجه: این یک برنامه ساده است. یعنی اینکه در صورت ارسال هر مقداری به غیر از عدد صحیح – مانند رشته – برنامه با اشکال روبه‌رو شده و در خروجی پیغام خطا صادر می‌کند. زیرا متغیر num  از نوع int تعریف شده است. در ضمن، هیچ مکانیزمی برای مدیریت خطا در این برنامه، نوشته نشده است.

جمع‌بندی

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

  • متغیرهای محلی
  • متغیرهای نمونه یا متغیرهای غیراستاتیک
  • متغیرهای استاتیک یا متغیرهای کلاسی
  • متغیرهای ثابت
  • متغیرهای فقط خواندنی

در این مطلب از مجله فرادرس با انواع متغیر در سی شارپ آشنا شدیم. این متغیرها وظیفه مدیریت داده‌های مورد استفاده برنامه‌ها را دارند. توسعه‌دهندگان حرفه‌ای سی شارپ باید با تمام متغیرهای آن آشنا بوده و روش و مکان درست برای استفاده از هر کدام را بلد باشند.

source

توسط expressjs.ir