Да си припомним: какво са класовете и обектите?


Константи инициализирани по време на изпълнение на програмата



страница53/84
Дата03.01.2022
Размер0.54 Mb.
#112941
ТипПрограма
1   ...   49   50   51   52   53   54   55   56   ...   84
Класове
Свързани:
Изпитна тема1, Изпитна тема2
Константи инициализирани по време на изпълнение на програмата

Когато искаме да декларираме константи от референтен тип, които не могат да бъдат изчислени по време на компилация на програмата, вместо модификатора const, в декларацията на константата трябва да използ­ваме комбинацията от модификато­ри static readonly:



[] static readonly ;

Съответно е такъв тип, чиято стойност не може да бъде изчислена по време на компилация.

Сега, ако заменим const със static readonly в последния пример от предходната секция, компилацията минава успешно:



public static readonly Color Black = new Color(0, 0, 0);

public static readonly Color White = new Color(255, 255, 255);



Именуване на константите

Съгласно конвенцията на Microsoft имената на константите в C# следват правилото PascalCase. Ако константата е съставена от няколко думи, всяка нова дума след първата започва с главна буква. Ето няколко примера за правилно именувани константи:



// The base of the natural logarithms (approximate value)

public const double E = 2.718281828459045;

public const double PI = 3.141592653589793;

public const char PathSeparator = '/';

public const string BigCoffee = "big coffee";

public const int MaxValue = 2147483647;

public static readonly Color DeepSkyBlue = new Color(0,104,139);


Понякога за константите се ползва и именуване в стил ALL-CAPS, но то не се подкрепя официално от код конвенциите на Майкрософт, макар и да е силно разпространено в програмирането:

public const double FONT_SIZE_IN_POINTS = 14; // 14pt font size

Както стана ясно от примерите, разликата между const и static readonly полетата е в момента, в който им се присвояват стойностите. Compile-time константите (const) трябва да бъдат инициализирани в момента на декларацията си, докато run-time константите (static readonly) могат да бъдат инициализирани на по-късен етап, например в някой от конструк­торите на класа, в който са дефинирани.



Сподели с приятели:
1   ...   49   50   51   52   53   54   55   56   ...   84




©obuch.info 2024
отнасят до администрацията

    Начална страница