2009-08-20 8 views
2

Path 클래스의 구성원은 Path.Combine과 같은 필수 항목입니다. 그들은 깔끔하고 정확한 코드로 이어집니다. 불행히도 C++ 전처리 기에서 헤더 경로를 관리하는 것과 같이 사용하면 프로파일러에 예상보다 많은 정보가 표시된다는 것을 빨리 알 수 있습니다. 왜?`System.IO.Path`를 구체적으로 작성해야합니까?

예외 : 경우 ArgumentException : 경로 1 또는 경로 2GetInvalidPathChars에 정의 된 잘못된 문자 중 하나 이상을 포함한다.

결합 검사 명령이 없어도 결합 명령은 O (n)입니다 (문자열 내용을 복사해야하기 때문에). 그러나 이는 GetInvalidPathChars '~ 40 명의 회원의 존재 여부를 확인하는 것보다 훨씬 저렴합니다.

나는 Path 클래스가 잘못된 문자를 포함하지 않는 것으로 알려진 문자열을 포함하는 변경 불가능한 유형이어야한다고 생각합니다. string (현재 존재 함)에서 작동하려면 정적 멤버가 제공되어야하고 Path 개체에서 작동하려면 동일한 세트가 추가되어야합니다. 닷넷 프레임 워크의 변화 만들기 :

  • 이 주요 변경 아닌가
  • 는 크게 몇 가지 모범 사례 작업의 성능을 향상 (밀봉 구체적인 유형의 정적 클래스를 변경하면 비 분리입니다)

의견?

답변

2

Uri 클래스는 file : // 구문에 신경 쓰지 않으면 이러한 종류의 기능을 제공 할 수 있습니다. .NET은 Uri 클래스의 사용을 선호합니다. 로컬 파일을 제외하고 리소스를 찾을 수 있기 때문입니다.하지만이를 지원하기 위해서는 프로그램 측에서 추가 작업이 필요합니다.

관련 문제