2009-06-22 11 views
1

컴파일러에서 Path.Combine이 내 필드를 참조하지만 System.IO.Path 클래스를 참조하려고하므로 컴파일 오류가 발생합니다. System.IO.Path.Combine()과 같은 FQN을 항상 작성해야하는 것 외에도이를 처리 할 수있는 좋은 방법이 있습니까?C# : 속성/필드 네임 스페이스 모호함

using System.IO; 

class Foo 
{ 
    public string Path; 

    void Bar(){ Path.Combine("",""); } // compile error here 
} 

답변

3

별도의 사용자 참조 :

this.Path = System.IO.Path.PathFunction(); 

나는 강력하게 시스템을 의미하는 게 좋을 것 내부의 경로를 사용할 때 .IO 네임 스페이스 왜냐하면 차이를 알기가 매우 어렵 기 때문입니다. 이걸 사용해서. 한정자와 전체 네임 스페이스를 구분할 수 있습니다.

5

이 작업을 수행 할 수 있습니다

다음
using IOPath = System.IO.Path; 

코드에서 :

class Foo 
{ 
    public string Path; 

    void Bar(){ IOPath.Combine("",""); } // compile error here 
} 
+0

이 예제를 추가하기 위해 내 대답을 편집했지만 이미 +1을 얻었습니다! –

+0

이것은 좋은 대답입니다. 그러나 가능한 한 .NET Framework 유형과 명확하게 충돌하는 이름은 사용하지 않는 것이 좋습니다. FilePath 또는 DataPath와 같은 이름 또는 일부는 속성을 명확히하는 동시에 명확성을 추가하는 더 좋은 방법 일 수 있습니다. 그러나 Path 클래스 이름은 일반적으로 .Net 디자이너 측에서 좋지 않은 선택이었던 경우 중 하나라고 생각합니다.이 속성은 일반적으로 속성에 대한 유용한 이름이기 때문에. – LBushkin

+0

또는 별칭을 완전히 피하십시오. 특히 한 번만 충돌하면 별칭을 사용하지 마십시오. –