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.

530 Въведение в програмирането със C#<br />

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

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

случай, за да извлечем стойността на полето, използваме ключовата дума<br />

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

По този начин еднозначно указваме, че искаме да използваме стойността<br />

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

Нека разгледаме отново нашия пример с извеждането на стойността на<br />

полето myValue:<br />

void PrintMyValue()<br />

{<br />

int myValue = 5;<br />

Console.WriteLine("My value is: " + this.myValue);<br />

}<br />

Този път резултатът от извикването на метода е:<br />

My value is: 3<br />

Видимост на полета и методи<br />

В началото на главата разгледахме общите положения с модификаторите и<br />

нивата на достъп на елементите на един клас в C#. По-късно се запознахме<br />

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

Сега ще разгледаме нивата на видимост на полетата и методите в<br />

класа. Тъй като полетата и методите са елементи (членове) на класа и имат<br />

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

тези правила едновременно.<br />

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

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

protected, internal и private. Нивото на видимост protected няма да бъде<br />

разглеждано в тази глава, тъй като е обвързано с наследяването на класове<br />

и е обяснено подробно в главата "Принципи на обектно-ориентираното<br />

програмиране".<br />

Преди да продължим, нека припомним, че ако един клас A, не е видим (няма<br />

достъп) от друг клас B, тогава нито един елемент (поле или метод) на класа<br />

A, не може да бъде достъпен от класа B.<br />

Ако два класа не са видими един за друг, то елементите<br />

им (полета и методи) не са видими също, независимо с<br />

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

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

които имаме два класа (Dog и Kid), които са видими един за друг, т.е. всеки

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

Saved successfully!

Ooh no, something went wrong!