2011-08-19 3 views
-1

나는 :이 C#에서 상속되었음을 나타냅니다.C# 상속 - ':'의 양쪽에있는 동일한 식별자

하지만 동일한 식별자가 양쪽에있을 때의 의미는 무엇입니까?

class GameObject : GameObject { 
+0

당신은 코드의 실제 조각을 게시해야한다이다 : 다음은 또한 컴파일됩니다. 귀하의 질문은 이해가되지 않습니다. – Gabe

+0

이런 말을하는 건가요? 클래스 파생 된 : Base {} – Zenwalker

+7

이것은 컴파일러 오류를 의미합니다 –

답변

3

당신이 그것에 대해 생각하면, 게임 오브젝트가 상속 게임 오브젝트에서 상속 게임 오브젝트에서 상속 때문에 비주얼 스튜디오가하는 '순환 종속성'오류가 발생합니다 때문에이 작동하지 않습니다 .. 즉, 이것은 불가능하며 아무 것도 의미하지 않습니다 (주석에 언급 된 Neil과 같은 컴파일러 오류는 제외).

+2

... 그 자체가 GameObject 인 GameObject에서 상속받은 GameObject, 즉 GameObject를 상속 한 GameObject GameObject라는 상위 클래스 인 GameObject 하위 클래스입니다. – BoltClock

+1

@BoltClock - 끝없는 내용을 포함하는 답변을 편집하는 중이었습니다 ...;) – DMan

+0

예 원형 기본 클래스 종속성 오류입니다. – Zenwalker

2

기본 클래스가 또 다른 가능한 시나리오는 제네릭을 포함

namespace A 
    { 
     class GameObject 
     { 
     } 
    } 

    namespace B 
    { 

     class GameObject: A.GameObject 
     { 
     } 
    } 

이름 충돌

를 다른 네임 스페이스에 선언 당신이 필요로하는 하지만, 사용하는 네임 스페이스를 해결하는 경우 제공하는 구문은 합법적 인 클래스 이름 오버로드를 허용하십시오.

class GameObject 
{ 
} 

class GameObject<T> : GameObject 
{ 
} 

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

기술적으로 두 예제 모두 GameObject : GameObject처럼 보이지 않습니다. – DMan

+1

맞습니다. 기술적으로 정확히 동일하지는 않습니다. 나는 저자가 생각한 예를 모르고 있기 때문에 최선의 추측을했다. – alexm

3

을 또는이 유니 코드

class GameObject 
{ 

} 
class GameObjеct : GameObject 
{ 

} 
+0

거룩한 쓰레기. 그것들은 유니 코드입니다. – BoltClock