2010-07-22 4 views
1

난 당신이대 [namespace.x.xx]를 (를) 사용하고 계십니까?

Path.GetDirectoryName(blah blah) 

또는 직접 성능의 관점에서 그들 사이에 어떤 차이가 있습니까

System.IO.Path.GetDirectoryName(blah blah); 

를 사용을

using System.IO 

을 사용할 수 있습니다 것을 보았는가?

using System.IO은 네임 스페이스의 모든 정적 클래스를 메모리에로드하여 더 많은 메모리를 사용하거나 프레임 워크가이를 방지 할 정도로 지능적입니까? 그렇다면 어떻게?

또는이 모두가 네임 스페이스의 개체간에 충돌을 피하는 데 사용됩니까?

는 어떤 통찰력을 크게 감상 할 수있다 :)

+0

가능한 복제본 [코드 파일에 네임 스페이스를 추가하면 performace에 영향을 줍니까?] (http://stackoverflow.com/questions/2941583/does-adding-more-namespace-in-the-code-file-affect- performace) – Shimmy

답변

6

아니, 그들은 같은 IL로 컴파일합니다. 순전히 소스 코드의 문제입니다. 정규화 된 이름보다는 짧은 이름을 사용하는 것이 일반적으로 더 읽기 쉽습니다.

컴파일 결과는 두 경우 모두 동일합니다.

+1

비록 그들이하지 않았더라도, 십대들의 성적 향상이 무엇이든간에 걱정하기보다는 읽기 쉽고 (따라서 유지 보수가 용이 한) 목표로하는 것이 더 좋은 방법 일 수 있습니다. – Amber

3

IL을 보면 두 가지 방법에 차이가 없습니다. 모든 클래스 이름은 완전합니다. 정적 클래스는 클래스가 처음 사용될 때만로드됩니다. 따라서 두 방법 모두 최종 코드에서 동일합니다.

using 선언을 검색하여 클래스 외부의 작업 (예 : I/O를 수행하거나 XML을 생성하는 클래스)에서 수행중인 작업을 확인하는 것이 훨씬 도움이됩니다. 항상 정규화 된 클래스 이름을 선언하는 것과는 대조적입니다.

+0

아하! 그래서 정적 클래스가 미리로드 된 줄 알았어! : D –

+0

글쎄, 나는 더 분명 했어야했다. 실제로 사용하는 클래스는 미리로드되지만 사용하는 네임 스페이스의 모든 정적 클래스가 사전로드되지는 않습니다. 처음 실제로 사용하기 전에 항상로드된다는 점을 제외하고 실제로로드 될 시점에 대해서는 보장 할 수 없습니다. – drharris

관련 문제