c# ':'两边都有相同的标识符

本文关键字:标识符 | 更新日期: 2023-09-27 18:05:58

我知道:在c#中表示继承;

但是当两边都有相同的标识符时是什么意思呢?

class GameObject : GameObject {

c# ':'两边都有相同的标识符

这不起作用,因为Visual Studio会抛出一个"循环依赖"错误,因为,当你考虑它时,GameObject继承自GameObject, GameObject继承自GameObject, GameObject继承自GameObject, GameObject继承自……换句话说,这是不可能的,因此没有任何意义(除了Neil在注释中提到的编译器错误)。

或者这是Unicode

class GameObject
{
}
class GameObjеct : GameObject 
{
}

如果基类在不同的名称空间中声明,则提供的语法是合法的但是,您需要使用名称空间来解决命名冲突

例子
   namespace A
   {
       class GameObject
       {
       }
   }
   namespace B
   {
      class GameObject: A.GameObject
      {
      }
   }

另一个可能的场景涉及到泛型,它允许类名重载。下面的代码也可以编译:

class GameObject
{
}
class GameObject<T> : GameObject
{
}
class GameObject<T, T> : GameObject<T>
{
}