مقادیر ثابت به عنوان لیترال «Literal» شناخته میشوند. لیترال مقداری است که توسط متغیرها استفاده میشود. مقادیر میتوانند به صورت عدد صحیح، اعشاری، رشتهای و غیره باشند. در این مقاله، از سری مقالات آموزشی پی استور به بررسی انواع مختلف لیترال در سی شارپ #C میپردازیم، از جمله لیترالهای عدد صحیح، اعشاری، رشتهای، کاراکتری و منطقی. با شناخت دقیق این انواع و ویژگیهای آنها، میتوانیم از آنها به درستی در برنامهنویسی استفاده کنیم و کدهای بهینهتر و قابل فهمتری بنویسیم.
لطفاً مقاله قبلی ما را مطالعه کنید، جایی که در مورد انواع داده در #C با مثالها بحث کردیم. در پایان این مقاله، شما خواهید فهمید که لیترال چیست و چه زمانی و چگونه باید از لیترال ها در برنامههای سی شارپ #C استفاده کرد.
لیترال در سی شارپ
در زبانهای برنامهنویسی، مقادیر ثابت به عنوان لیترالها Literals شناخته میشوند که به عنوان دادههای از پیش تعیینشده در برنامهها عمل میکنند. این مقادیر ثابت میتوانند انواع مختلفی داشته باشند و در کدهای برنامهنویسی برای مقداردهی به متغیرها و انجام محاسبات استفاده شوند. هر نوع دادهای که به صورت مستقیم در کد نوشته میشود، چه عدد صحیح، اعشاری، رشتهای یا منطقی، یک Literal محسوب میشود.
لیترال در سی شارپ #C مقادیر ثابت (یا مقادیر از پیش تعیین شده) هستند که به متغیر شما اختصاص داده میشوند و این مقادیر در حین اجرای برنامه نمیتوانند تغییر کنند.
مقادیر ثابت به نام لیترال در سی شارپ شناخته میشوند. Literal مقداری است که توسط متغیرها استفاده میشود. برای مثال، int x = 100، در اینجا x یک متغیر است و ۱۰۰ یک literal است.
انواع لیترال در سی شارپ
لیترال ها میتوانند از انواع زیر باشند:
- لیترالهای عدد صحیح «Integer Literals»
- لیترالهای اعشاری «Floating-point Literals»
- لیترالهای کاراکتری «Character Literals»
- لیترالهای رشتهای «String Literals»
- لیترالهای منطقی «Boolean Literals»
در ادمه این مقاله هر یک از این لیترال ها را در سی شارپ با مثالها بررسی میکنیم.
لیترال های عدد صحیح در سی شارپ
یک literal از نوع عدد صحیح به عنوان literal عدد صحیح شناخته میشود. این نوع میتواند به صورت اعشاری «decimal»، دودویی «binary» یا شانزدهشانزدهی «hexadecimal» باشد. در اینجا، باید از پیشوندهایی برای مشخص کردن نوع Literal استفاده کنیم. برای مثال، اگر Literal دودویی باشد، باید با 0b شروع شود و اگر هگزادسیمال باشد، با 0X شروع میشود. برای اعداد اعشاری نیازی به پیشوند نیست. یک پسوند همچنین می تواند با لیترالهای اعداد صحیح مانند U یا u برای اعداد بدون علامت «unsigned» استفاده شود، در حالی که L یا l برای اعداد طولانی «long» استفاده میشود. به طور پیشفرض، هر literal از نوع int است.
برای انواع دادههای عددی (byte، short، int، long) میتوان لیترالها را به شکلهای زیر مشخص کرد:
- لیترالهای اعشاری Decimal literals (پایه ۱۰): در این شکل، ارقام مجاز بین ۰ تا ۹ هستند.
int x = 101;
- لیترالهای شانزدهشانزدهی Hexa-decimal Literals (پایه ۱۶): در این نوع، ارقام مجاز بین ۰ تا ۹ و حروف بین a تا f هستند. میتوان از حروف بزرگ و کوچک استفاده کرد.
با وجود اینکه زبان برنامهنویسی #C حساس به حروف بزرگ و کوچک (case-sensitive) است، در اینجا این حساسیت اعمال نمیشود. عدد هگزادسیمال باید با 0X یا 0x شروع شود و با Face خاتمه یابد.
int x = 0X123Face;
- لیترالهای دودویی Binary Literals (پایه ۲): در این نوع، ارقام مجاز تنها ۱ و ۰ هستند. عدد دودویی باید با 0b شروع شود.
int x = 0b101
مثال
045uu // invalid: suffix (u) is repeated 0b105 // invalid: 5 is not a binary digit 0b101 // valid binary literal ۴۵۶ // valid decimal literal 0x65d // valid hexadecimal literal ۱۲۳۵۶ // valid int literal 304U // valid unsigned int literal 3078L // valid long literal 965UL // valid unsigned long literal
برنامه
// C# program to illustrate the use of Integer Literals using System; class ProgramStore { // Main method public static void Main(String[] args) { // decimal-form literal int a = 101; // Hexa-decimal form literal int c = 0xFace; // binary-form literal int x = 0b101; Console.WriteLine("Decimal Literal: " + a); Console.WriteLine("Hexa-Decimal Literal: " + c); Console.WriteLine("Binary Literal: " + x); } }
خروجی
Decimal Literal: 101 Hexa-Decimal Literal: 64206 Binary Literal: 5
لیترال های اعشاری در سی شارپ
لیترالهایی که قسمت عدد صحیح، نقطه اعشاری، قسمت کسری و قسمت نمایی دارند، به عنوان لیترالهای اعشاری شناخته میشوند. این مقادیر میتوانند هم به صورت اعشاری و هم به صورت نمایی نمایش داده شوند. لیترالهای اعشاری برای نوشتن مقادیر از انواع float، double و decimal استفاده میشوند.
مثالها
Double d = 3.14145 // Valid Double d = 312569E-5 // Valid Double d = 125E // invalid: Incomplete exponent Double d = 784f // valid Double d = .e45 // invalid: missing integer or fraction
برنامه
// C# program to illustrate the use of // floating-point literals using System; class ProgramStore { // Main Method public static void Main(String[] args) { // decimal-form literal double a = 101.230; // It also acts as decimal literal double b = 0123.222; Console.WriteLine(a); Console.WriteLine(b); } }
خروجی
۱۰۱.۲۳ ۱۲۳.۲۲۲
نکته:
به طور پیشفرض، هر literal اعشاری از نوع double است و به همین دلیل نمیتوان آن را مستقیماً به یک متغیر از نوع float اختصاص داد. اگر بخواهید مقادیر را به متغیر float اختصاص دهید، باید پسوند f یا F را در انتهای لیترال اعشاری اضافه کنید. همچنین، میتوان به طور صریح لیترال اعشاری را به نوع double با پسوند d یا D مشخص کرد، البته این روش اجباری نیست.
لیترال های کاراکتری در سی شارپ
برای انواع دادههای کاراکتری، میتوان لیترالها را به سه روش زیر مشخص کرد:
علامت نقل قول واحد «Single quote»: میتوان literal را به نوع داده char به صورت یک کاراکتر واحد داخل علامت نقل قول تنها مشخص کرد.
char ch = 'a';
نمایش یونیکد «Unicode Representation»: میتوان literals کاراکتری را به صورت نمایشی یونیکد مشخص کرد به شکل ‘uxxxx\’. در اینجا xxxx نمایانگر ۴ عدد شانزدهشانزدهی است.
char ch = '\u0061';// Here /u0061 represent a.
دنباله فرار «Escape Sequence»: هر کاراکتر فرار «Escape character» میتواند به عنوان char literal مشخص شود.
char ch = '\n';
در جدول زیر فهرستی از برخی دنبالههای فرار موجود در #C آورده شده است.
دنباله فرار | معنی |
\\ | کاراکتر \ |
’\ | کاراکتر ‘ |
?\ | کاراکتر ? |
”\ | کاراکتر “ |
b\ | بکاسپیس |
a\ | هشدار یا زنگ |
n\ | خط جدید |
f\ | پیکربندی فرم |
r\ | برگشت به ابتدای خط |
v\ | تب عمودی |
xhh…\ | عدد هگزادسیمال با یک یا چند رقم |
مثال
// C# program to illustrate the use of char literals using System; class ProgramStore { // Main Method public static void Main(String[] args) { // character literal within single quote char ch = 'a'; // Unicode representation char c = '\u0061'; Console.WriteLine(ch); Console.WriteLine(c); // Escape character literal Console.WriteLine("Hello\nProgramStore\tLiterals"); } }
خروجی
a a Hello ProgramStore Literals
لیترال های رشتهای در سی شارپ
لیترالهایی که در داخل نقل قولهای دوگانه (“”) قرار دارند یا با “”@ شروع میشوند، به عنوان لیترالهای رشتهای شناخته میشوند.
مثال
String s1 = "Hello ProgramStore!"; String s2 = @"Hello ProgramStore!";
برنامه
// C# program to illustrate the use of String literals using System; class ProgramStore { // Main Method public static void Main(String[] args) { String s = "Hello ProgramStoreProgramStore!"; String s2 = @"Hello ProgramStore!"; // If we assign without "" then it // treats as a variable // and causes compiler error // String s1 = ProgramStore; Console.WriteLine(s); Console.WriteLine(s2); } }
خروجی
Hello ProgramStoreProgramStore! Hello ProgramStore!
لیترال های منطقی در سی شارپ
در سی شارپ فقط دو مقدار برای لیترالهای منطقی مجاز هستند، یعنی true و false.
مهم است توجه داشته باشید که، مقادیر true و false به هیچوجه به نمایه عددی تبدیل نمیشوند. برای مثال، literal true در #C معادل ۱ نیست و literal false معادل ۰ نیست.
مثال
bool b = true; bool c = false; bool b3 = 0; //Error bool b4 = 1; //Error
توجه: مقادیر true و false باید به صورت حروف کوچک (lowercase) اختصاص داده شوند، در غیر این صورت با خطای زمان کامپایل مواجه خواهید شد. به عبارت دیگر، استفاده از True یا False به حروف بزرگ نادرست است و باعث بروز خطا میشود.
bool b1 = True; //Error bool b2 = False; //Error bool b1 = TRUE; //Error bool b2 = FALSE; //Error
برنامه
// C# program to illustrate the use // of boolean literals using System; class ProgramStore { // Main Method public static void Main(String[] args) { bool b = true; bool c = false; // these will give compile time error // bool d = 0; // bool e = 1; // Console.WriteLine(d); // Console.WriteLine(e); Console.WriteLine(b); Console.WriteLine(c); } }
خروجی
True False
نتیجهگیری
در نهایت، لیترالها به عنوان مقادیر ثابت و از پیش تعیینشده در زبانهای برنامهنویسی نقش مهمی در فرآیند نوشتن کد ایفا میکنند. انواع مختلف لیترال در سی شارپ مانند عدد صحیح، اعشاری، رشتهای، کاراکتری و منطقی هرکدام کاربرد خاص خود را دارند و با استفاده صحیح از آنها میتوان کدهای دقیق و کارآمد نوشت. آگاهی از ویژگیها و نحوه استفاده از هر نوع Literal به برنامهنویسان این امکان را میدهد که مقادیر مورد نظر خود را به راحتی و به شکل درست در برنامهها اعمال کنند. بنابراین، درک درست از Literals برای توسعهدهندگان از اهمیت بالایی برخوردار است تا بتوانند در پروژههای برنامهنویسی خود به بهترین شکل ممکن عمل کنند.
مطالب مفید و مثال های کاربردی و عملی
سپاس فراوان
سلام، ممنون بابت توضیحات خوبتون. به خصوص که برای هرکدام مثال آوردید. خیلی عالی بود
خیلی عالی بود! من تازه با مفهوم لیترالها آشنا شدم و این مقاله خیلی به درک بهترم کمک کرد. 🙏