C # - stałe i literały

Stałe odnoszą się do stałych wartości, których program nie może zmieniać podczas wykonywania. Te ustalone wartości są również nazywane literałami. Stałe mogą mieć dowolny z podstawowych typów danych, takich jak stała całkowita, stała zmiennoprzecinkowa, stała znakowa lub literał ciągu. Istnieją również stałe wyliczeniowe.

Stałe są traktowane tak jak zwykłe zmienne, z tym wyjątkiem, że ich wartości nie mogą być modyfikowane po ich definicji.

Literały całkowite

Literał liczby całkowitej może być stałą dziesiętną lub szesnastkową. Prefiks określa podstawę lub podstawę: 0x lub 0X dla szesnastkowej i nie ma identyfikatora prefiksu dla dziesiętnych.

Literał liczby całkowitej może również mieć sufiks będący kombinacją U i L, odpowiednio dla unsigned i long. Sufiks może być pisany wielką lub małą literą i może mieć dowolną kolejność.

Oto kilka przykładów literałów całkowitych -

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

Poniżej znajdują się inne przykłady różnych typów literałów całkowitych -

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

Literały zmiennoprzecinkowe

Literał zmiennoprzecinkowy ma część całkowitą, przecinek dziesiętny, część ułamkową i część wykładniczą. Literały zmiennoprzecinkowe można przedstawić w postaci dziesiętnej lub wykładniczej.

Oto kilka przykładów literałów zmiennoprzecinkowych -

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

Przedstawiając w formie dziesiętnej, musisz uwzględnić kropkę dziesiętną, wykładnik lub oba; i podczas przedstawiania przy użyciu formy wykładniczej należy uwzględnić część całkowitą, część ułamkową lub obie. Podpisany wykładnik jest wprowadzany przez e lub E.

Stałe znaku

Literały znakowe są ujęte w pojedyncze cudzysłowy. Na przykład „x” i może być przechowywane w prostej zmiennej typu char. Literał znakowy może być zwykłym znakiem (np. „X”), sekwencją ucieczki (np. „\ T”) lub znakiem uniwersalnym (np. „\ U02C0”).

Istnieją pewne znaki w języku C #, które są poprzedzone ukośnikiem odwrotnym. Mają specjalne znaczenie i są używane do reprezentacji jak nowa linia (\ n) lub tabulacja (\ t). Oto lista niektórych z takich kodów sekwencji ucieczki -

Sekwencja ewakuacyjna Znaczenie
\\ \ postać
\ ' ' postać
\ " " postać
\? ? postać
\za Alert lub dzwonek
\b Backspace
\fa Form feed
\ n Nowa linia
\ r Powrót karetki
\ t Zakładka pozioma
\ v Zakładka pionowa
\ xhh. . . Liczba szesnastkowa składająca się z jednej lub więcej cyfr

Poniżej znajduje się przykład pokazujący kilka znaków sekwencji sterującej -

using System;

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

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Hello   World

Literały strunowe

Literały łańcuchowe lub stałe są ujęte w podwójne cudzysłowy „” lub za pomocą @ „”. Ciąg zawiera znaki podobne do literałów znakowych: zwykłe znaki, sekwencje ucieczki i znaki uniwersalne.

Możesz podzielić długi wiersz na wiele wierszy, używając literałów łańcuchowych i oddzielając części za pomocą białych znaków.

Oto kilka przykładów literałów ciągów. Wszystkie trzy formy są identycznymi ciągami.

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

Definiowanie stałych

Stałe są definiowane przy użyciu constsłowo kluczowe. Składnia do definiowania stałej to -

const <data_type> <constant_name> = value;

Poniższy program demonstruje definiowanie i używanie stałej w programie -

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();
      }
   }
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Enter Radius: 
3
Radius: 3, Area: 28.27431