25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

}<br />

sqrtValues = new int[MaxValue + 1];<br />

for (int i = 0; i < sqrtValues.Length; i++)<br />

{<br />

sqrtValues[i] = (int)Math.Sqrt(i);<br />

}<br />

}<br />

// Static method<br />

public static int GetSqrt(int value)<br />

{<br />

if ((value < 0) || (value > MaxValue))<br />

{<br />

throw new ArgumentOutOfRangeException(String.Format(<br />

"The argument should be in range [0..{0}].", MaxValue));<br />

}<br />

return sqrtValues[value];<br />

}<br />

class SqrtTest<br />

{<br />

static void Main()<br />

{<br />

Console.WriteLine(SqrtPrecalculated.GetSqrt(254));<br />

// Result: 15<br />

}<br />

}<br />

Изброени типове (enumerations)<br />

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

как се декларират и как се използват. В тази връзка, сега ще разгледаме<br />

една конструкция от езика С#, при която можем множество от константи,<br />

които са свързани логически, да ги свържем и чрез средствата на езика.<br />

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

Декларация на изброените типове<br />

Изброен тип (enumeration) наричаме конструкция, която наподобява<br />

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

константи. Изброените типове могат да приемат стойности само измежду<br />

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

стойност някоя измежду изброените в типа стойности (константи), но не<br />

може да има стойност null.<br />

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

запазената дума enum вместо class:

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

Saved successfully!

Ooh no, something went wrong!