25.07.2017 Views

Intro-CSharp-Book-v2015

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Глава 14. Дефиниране на класове 589<br />

За да покажем "целочислената природа" на константите в изброените<br />

типове, нека се опитаме да разберем какво е численото представяне на<br />

константата отговаряща на "понеделник" от примера от предходната<br />

подсекция:<br />

int mondayValue = (int)Days.Mon;<br />

Console.WriteLine(mondayValue);<br />

След като го изпълним, резултатът ще бъде:<br />

0<br />

Стойностите, асоциирани с константите в един изброен тип по подразбиране<br />

са индексите в списъка с константи на този тип, т.е. числата от 0<br />

до броя константи в типа минус единица. Така, ако разгледаме примера с<br />

изброения тип за дните в седмицата, използван в предходната подсекция,<br />

константата Mon е асоциирана с числената стойност 0, константата Tue с<br />

целочислената стойност 1, Wed – с 2, и т.н.<br />

Всяка константа в един изброен тип реално е текстово<br />

представяне на някакво цяло число. По подразбиране,<br />

това число е индексът на константата в списъка от константи<br />

на изброения тип.<br />

Въпреки целочислената природа на константите в един изброен тип, когато<br />

се опитаме да отпечатаме дадена константа, ще бъде отпечатано текстовото<br />

й представяне зададено при декларацията й:<br />

Console.WriteLine(Days.Mon);<br />

След като изпълним горния код, резултатът ще бъде следният:<br />

Mon<br />

Скрита числена стойност на константите в изброени<br />

типове<br />

Както вече се досещаме, можем да променим числената стойност на<br />

константите в един изброен тип. Това става като по време на декларацията<br />

присвоим стойността, която предпочитаме, на всяка една от<br />

константите.<br />

[] enum <br />

{<br />

constant1[=value1] [, constant2[=value2] [, ... ]]<br />

}<br />

Съответно value1, value2, и т.н. трябва да са цели числа.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!