Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Hristo_Penchev avatar Hristo_Penchev 389 Точки

[Technical Issue] OOP - override string ToString() при унаследяване

Здравейте,

Това стрингосване не ми е много ясно и се опитвам да разбера как работи. Ще дам следния пример. Да кажем имаме

class Animal

{

    private int age;

    private string location;

.........................................

    public override string ToString()

    {

        string output = "";

        output + = "Age: " + age.ToString() + "\n";

        output+= "Location: " + location + "\n";

        return string.Format(output);

    }

}

 

До тук ясно какво работи стрингосването. Правим унаследен клас 

class Dog: Animal

{

    private string breed;

...................................

 public override string ToString()

}

И тук идват трудностите. Как да направя така, че като стрингосам Dog, да ми стрингоса age и location както е според класа Animal и да добави после 

output += "Breed: " + breed;

Разбира се, винаги е вариант да копирам целия код от метода в родителския клас и да го сложа в Dog, като после допиша породата, но ми се струва доста дървено решение и повтаряне на кода. Та има ли начин да накарам Dog да се стрингоса по начина, зададен в Animal и после да добави останалите променливи?
Пиша в Main() dog.ToString() и то ми вика Animal.ToString(), прави каквот оправи, добавя специфичните неща за dog и ми връща стринга. Надявам се да съм формулирал въпроса си достатъчно ясно. Благодаря предварително.

0
C# OOP Basics 30/12/2014 02:35:25
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Така стана. Мерси!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.