2013-08-12 6 views
0

네임 스페이스 또는 형식 이름을 변경하지 않고도 C#에서 다음 코드를 유효하게 만들 수 있습니까? 이 문제를 해결하기 위해 트릭이나 키워드가 있는지 궁금합니다.네임 스페이스 이름 및 형식 이름 충돌

namespace NS 
{ 
    public class Foo { } 
} 

namespace NS.Foo 
{ 
    public class Bar { } 
} 

내가 얻는 오류는 "네임 스페이스 'NS'에 이미 'Foo'에 대한 정의가 포함되어 있습니다.

+4

다음을 수행하지 마십시오. http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace -part-one.aspx – jason

+0

Wwwww, 아니, 그렇게하고 싶지는 않아. 그것은 당신과 그 코드베이스를 사용하는 다른 누군가를 즉시 귀찮게 할 것입니다. –

+0

@ Jason : 귀하의 링크는 해당 * 둘러싼 * 네임 스페이스 (즉, 클래스 NS.NS 또는 NS.Foo.Foo)와 같은 이름의 클래스를 참조합니다. 질문 - 동일한 이름을 가진 계층 구조의 동일한 수준에있는 네임 스페이스 및 클래스입니다. –

답변

0

본질적으로 그렇지 않습니다. 즉각적인 모호성을 어떻게 든 해결할 수 있다고해도이 문제는 계속 발생합니다. Foo이라는 속성을 선언하면 어떤 일이 발생합니까? Bar?

Foo 중 하나의 이름을 변경하십시오.

0

없음 - NS.Foo에서 네임 스페이스NS.Foo클래스을 명확하게 할 수있는 방법이 없습니다.

4

없음 - Bar라고 Foo의 서브 클래스 상상해 : new NS.Foo.Bar()을 하나가하는 경우

namespace NS 
{ 
    public class Foo { public class Bar {} } 
} 

namespace NS.Foo 
{ 
    public class Bar { } 
} 

방법 적 차이를 말할 수 있습니까? 없습니다

관련 문제