Константи инициализирани по време на компилация (compile-time constants)
Константите, които се изчисляват по време на компилация се декларират по следния начин, използвайки модификатора const:
Константите, декларирани със запазената дума const, са статични полета. Въпреки това, в декларацията им не се изисква (нито е позволена от компилатора) употребата на модификатора static:
|
Въпреки, че константите декларирани с модификатор const са статични полета, в декларацията им не трябва и не може да се използва модификаторът static.
|
Например, ако искаме да декларираме като константа числото "пи", познато ни от математиката, това може да стане по следния начин:
public const double PI = 3.141592653589793;
|
Стойността, която присвояваме на дадена константа може да бъде израз, който трябва да бъде изчислим от компилатора по време на компилация. Например, както знаем от математиката, константата "пи" може да бъде представена като приблизителен резултат от делението на числата 22 и 7:
public const double PI = 22d / 7;
|
При опит за отпечатване на стойността на константата:
public static void Main()
{
Console.WriteLine("The value of PI is: " + PI);
}
|
в командния ред ще бъде изписано:
The value of PI is: 3.14285714285714
|
Ако не дадем стойност на дадена константа по време на декларацията й, а по-късно, ще получим грешка при компилация. Например, ако в примера с константата PI, първо декларираме константата, и по-късно се опитаме да й дадем стойност:
public const double PI;
// ... Some code ...
public void SetPiValue()
{
// Attempting to initialize the constant PI
PI = 3.141592653589793;
}
|
Компилаторът ще изведе грешка подобна на следната, указвайки ни реда, на който е декларирана константата:
Нека обърнем внимание отново:
|
Константите декларирани с модификатор const задължително се инициализират в момента на тяхната декларация.
|
Сподели с приятели: |