Два экземпляра интерфейса могут ссылаться друг на друга? - PullRequest
0 голосов
/ 08 сентября 2011

Использование C #

Interface A,
Interface B,

Class AA:A
{

 public AA(A a)
{
 //...
}

}

Class BB:B
{

public BB(B b)
{
  //...
}

}

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

1 Ответ

2 голосов
/ 08 сентября 2011

Почему бы и нет? Помимо синтаксиса, самоподобные структуры появляются по всей компьютерной науке. Рассмотрим двоичное дерево: каждый узел имеет ссылку на два других дерева (представленных их корневыми узлами). Типичным способом создания такого дерева является тип, который создается не с одним, а с двумя ссылками на другие экземпляры этого типа.

В целом, циклы в системе типов не совпадают с циклами в графе объектов . Обычно первый - это дизайн, но второй может превратиться в ошибку.

...