سی شارپ - ثابت و لیترال

مقادیر ثابت مقدار هایی هستند که در طول برنامه تغییر نمی کنند. به این مقادیر ثابت لیترال هم گفته می شود. مقادیر ثابت می توانند از هر نوعی از داده ، مانند integer، float ، کاراکتر یا رشته باشند.همچنین enumeration های ثابت نیز داریم.

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

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

یک لیترال عددی می تواند از نوع decimal و یا hexadecimal باشد. برای مقادیر hexadecimal یک پیشوند پایه مانند 0x ویا 0Xباشد. اما برای نوع decimal پیشوندی وجود ندارد

یک لیترال عددی می تواند همچنین یک پسوند که ترکیبی از U و L هست داشته باشد که به ترتیب برای مقادیر عددی بدون علامت و long هستند. پسوند می تواند در حروف بزرگ یا کوچک و به هر ترتیبی باشند

در زیر مثال هایی از لیترال های عددی آورده شده است

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' باشد.

تعدادی کاراکتر خاص در سی شارپ وجود دارند که هنگامی که بعد از یک بک اسلش آورده می شوند ، معنی خاصی دارند. مانند (\n) که به معنی یک خط جدید است و یا (\t) که به معنای tab است. در زیر تعدادی از این کاراکتر ها نمایش داده شده است.

Escape sequence Meaning
\\ \ character
\' ' character
\" " character
\? ? character
\a Alert or bell
\b Backspace
\f Form feed
\n Newline
\r Carriage return
\t Horizontal tab
\v Vertical tab
\xhh . . . Hexadecimal number of one or more digits

در زیر مثالی آورده شده که بعضی از این کاراکتر های escape sequence را نمایش می دهد.

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

خروجی کد بالا به شکل زیر است:

Hello   World

لیترال های رشته ای

لیترال های رشته ای مقادیر ثابتی هستند که بین دابل کوتیشن "" و یا @"" قرار می گیرند. یک رشته شامل مجموعه ای از کاراکتر ها هست. که همچنین می تواند شامل کاراکترهایی که دربالا توضیح داده شد مانند کاراکتر های ساده و یا escape sequences و universal characters باشد.

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

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

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

تعریف کردن ثابت ها

ثابت ها با استفاده از کلمه ی کلیدی 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