سه شنبه ۲۷ شهريور ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش سی شارپ - ثابت ها و لیترال ها

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

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

لیترال‌های صحیح

یک لیترال صحیح می‌تواند ثابت دهدهایی یا شانزدهی باشد. پیشوندی برای پایه یا رادیکس مشخص می‌کند: 0x یا 0X برای شانزدهی، و هیچ پیشوندی برای دهدهی نیست.

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

اینجا چند مثال از لیترال‌های صحیح آمده است −


212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */

در ادامه مثال‌های دیگری از انواع مختلف اعداد صحیح عرضه می‌شود:


85         /* decimal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

لیترال‌های اعداد اعشاری شناور

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

در زیر چند نمونه از لیترال‌های اعداد اعشاری شناور آمده است:


3.14159       /* Legal */
314159E-5F    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

در هنگام نمایش به صورت اعشاری، شما باید نقطه اعشاری، نماینده توان، یا هر دو را شامل شود؛ و در هنگام نمایش به صورت نمایی، شما باید بخش صحیح، بخش کسری، یا هر دو را شامل شود. نماینده توان با علامت e یا E معرفی می‌شود.

ثابت‌ها و لیترال‌های کاراکتری

ثابت‌های کاراکتری داخل نقل قول تکی (') قرار می‌گیرند. به عنوان مثال، 'x' و می‌تواند در یک متغیر ساده از نوع char ذخیره شود. یک لیترال کاراکتر می‌تواند شامل یک کاراکتر ساده (مانند 'x')، یک دنباله فرار (مانند '\t')، یا یک کاراکتر جهانی (مانند '\u02C0') باشد.

در C#، برخی کاراکترها هنگامی که پیش از آنها یک خط کشیده قرار می‌گیرد، معنای خاصی دارند و برای نمایش مانند شکل خط جدید (\n) یا تب (\t) استفاده می‌شوند. در زیر، فهرستی از برخی از چنین کد‌های دنباله اسکیپ آمده است −

توالی اسکیپ معنی
\\ کاراکتر \
\' کاراکتر '
\" کاراکتر "
\? کاراکتر ?
\a هشدار صوتی
\b Backspace
\f فرم feed
\n خط جدید
\r بازگشت خط
\t Horizontal tab
\v علامت تب عمودی
\xhh . . . عدد شانزدهی با یک یا چند رقم

در زیر نمونه‌ای از تعدادی از توالی‌های اسکیپ نشان داده شده‌است −


using System;

namespace EscapeChar {
   class Program {
      static void Main(string[] args) {
         Console.WriteLine("Hello\tWorld\n\n");
         Console.ReadLine();
      }
   }
}

هنگامی که کد بالا کامپایل و اجرا می‌شود، نتیجه زیر را تولید می‌کند −


Hello   World

ثوابت رشته‌ای

ثوابت یا ثابت‌های رشته‌ای در دو قوس‌ دوتایی "" یا @"" قرار می‌گیرند. یک رشته شامل کاراکترهایی است که شبیه به کاراکترهای ثابت هستند: کاراکترهای ساده، دنباله‌های ایکیپ، و کاراکترهای جهانی.

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

در ادامه چند نمونه از ثوابت رشته‌ای آمده است. همه سه شکل رشته‌ها یکسان هستند.


"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
@"hello dear"

تعریف ثابت‌ها (Defining Constants)

ثابت‌ها با استفاده از کلیدواژه const تعریف می‌شوند. ساختار تعریف یک ثابت به صورت زیر است −


const <data_type> <constant_name> = value;

برنامه زیر نحوه تعریف و استفاده از یک ثابت در برنامه شما را نشان می‌دهد −


using System;

namespace DeclaringConstants {
   class Program {
      static void Main(string[] args) {
         const double pi = 3.14159;   
            
         // constant declaration 
         double r;
         Console.WriteLine("Enter Radius: ");
         r = Convert.ToDouble(Console.ReadLine());
            
         double areaCircle = pi * r * r;
         Console.WriteLine("Radius: {0}, Area: {1}", r, areaCircle);
         Console.ReadLine();
      }
   }
}

هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را تولید می کند −


Enter Radius: 
3
Radius: 3, Area: 28.27431