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. Дефиниране на класове 563<br />

Нека допълним примера за свойството "възраст" (Age) в класа Dog, за да<br />

онагледим казаното дотук:<br />

private int age;<br />

// Field declaration<br />

public int Age<br />

// Property declaration<br />

{<br />

get{ return this.age; }<br />

set{ this.age = value; } // Setter declaration<br />

}<br />

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

Извикването на метода за модификация на стойността на свойството става<br />

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

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

Dog dogInstance = new Dog();<br />

// ...<br />

dogInstance.Age = 3;<br />

// Setter invocation<br />

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

методът на свойството Age, с което тази стойност се записва в параметъра<br />

value и се подава на setter метода на свойството Age. Съответно в нашия<br />

пример, стойността на променливата value се присвоява на полето age oт<br />

класа Dog, но в общия случай може да се обработи по по-сложен начин.<br />

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

стойността на свойство<br />

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

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

валидни и в случай че не са, да се вземат необходимите "мерки". Най-често<br />

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

Да вземем отново примера с възрастта на кучето. Както знаем, тя трябва да<br />

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

присвои на свойството Age стойност, която е отрицателно число или нула,<br />

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

public int Age<br />

{<br />

get { return this.age; }<br />

set<br />

{<br />

// Take precaution: perform check for correctness<br />

if (value

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

Saved successfully!

Ooh no, something went wrong!