Member 13348294 Ответов: 1

Как я могу получить базовый или вспомогательный класса из другого класса


// Привет:] - я новичок в этом мире
// помогите, пожалуйста
//вот пример
//
class employee
{
public string name;
public int age;
}
//the class group  of emps
class group
{
public string name;
public employee[] emps;
}
employee em1 = new employee();
em1.name = "emp1";
em.age = 20;
employee em2 = new employee();
em2.name = "emp2";
em.age = 25;
group gp1 = new group();
gp.name = "gr1";
gp.emps = {em1,em2};

//
//
//как мне получить (группу) em1 или em2 ?
// а имя группы (строковое имя)?
// thanqus й у пхун :]

Что я уже пробовал:

//не могу использовать базовый класс или подкласс
//методы

1 Ответов

Рейтинг:
12

OriginalGriff

В принципе, вы этого не делаете - ссылка не "знает", что на нее ссылается, это нарушило бы правила Упс (вашему сотруднику даже не нужно знать, что существуют группы, а тем более что они могут содержать коллекцию объектов сотрудника или что их может быть несколько).

Если вы хотите это сделать - а я действительно не советую-добавьте ссылку на группу к вашему классу сотрудников и установите ее при добавлении сотрудника в группу.
Но такого рода циклические ссылки могут усложнить ситуацию, а также ограничить способность сборщиков мусора выполнять свою работу.

Подумайте о том, чего вы пытаетесь достичь - возможно, есть лучшее решение, которое вообще не нуждается в таком типе клуджа.


Richard Deeming

В отличие от языков с подсчетом ссылок, GC не имеет никаких проблем с обработкой циклических ссылок. :)