Синтаксис, который вы указали, допустим, если базовый класс объявлен в другом пространстве имен
Однако вам нужно использовать пространства имен для разрешения конфликтов имен
Пример
namespace A
{
class GameObject
{
}
}
namespace B
{
class GameObject: A.GameObject
{
}
}
Другой возможный сценарий связан с обобщениями, которые допускают перегрузку имени класса. Следующее также скомпилирует:
class GameObject
{
}
class GameObject<T> : GameObject
{
}
class GameObject<T, T> : GameObject<T>
{
}