Наследование в C # - один и тот же идентификатор по обе стороны от ':' - PullRequest
0 голосов
/ 19 августа 2011

Я знаю, : указывает на наследование в C #;

, но что это значит, когда один и тот же идентификатор находится по обе стороны?

Например,

class GameObject : GameObject {

Ответы [ 3 ]

3 голосов
/ 19 августа 2011

Или это Unicode

class GameObject
{

}
class GameObjеct : GameObject 
{

}
3 голосов
/ 19 августа 2011

Это не работает, потому что Visual Studio выдаст ошибку «циклическая зависимость», потому что, когда вы думаете об этом, GameObject наследует от GameObject, который наследует от GameObject, который наследует от ... Другими словами, это невозможно, и так ничего не значит (кроме, как Нейл, упомянутый в комментариях, ошибка компилятора).

2 голосов
/ 19 августа 2011

Синтаксис, который вы указали, допустим, если базовый класс объявлен в другом пространстве имен Однако вам нужно использовать пространства имен для разрешения конфликтов имен

Пример

   namespace A
   {
       class GameObject
       {
       }
   }

   namespace B
   {

      class GameObject: A.GameObject
      {
      }
   }

Другой возможный сценарий связан с обобщениями, которые допускают перегрузку имени класса. Следующее также скомпилирует:

class GameObject
{
}

class GameObject<T> : GameObject
{
}

class GameObject<T, T> : GameObject<T>
{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...