문제

하다 Using Namespace; 더 많은 메모리를 소비합니까?

저는 현재 모바일 애플리케이션을 연구하고 있으며 클래스를 만들 때 비주얼 스튜디오가 제시하는 진술을 사용하는 불필요한 응용 프로그램에 추가 메모리를 실행해야합니다.

도움이 되었습니까?

해결책

간단히 말하면 : 아니오.

이러한 진술은 모든 형태의 IL로 번역되지 않습니다. 그들은 (못생긴!) 완전히 자격을 갖춘 유형 이름을 사용하지 않기 위해 바로 가기입니다. 그러나 vs2008 및/또는 r#을 사용하는 경우 사용하지 않은 것을 자동으로 제거 할 수 있습니다.

다른 팁

네임 스페이스는 개발 중에 시간을 절약 할 수있는 C#의 컴파일 타임 유일한 기능입니다. 그만큼 using 지시문은 컴파일러에서 사용하여 코드에서 속기 유형 이름을 찾아냅니다.

기본적으로 컴파일러가 코드에서 유형 이름을 만날 때마다 각각을 차지하는 것을 알지 못합니다. using 지침 및 유형의 이름으로이를 준비하고 완전한 자격을 갖춘 이름이 해결되는지 확인합니다.

응용 프로그램이 정리되면 네임 스페이스와 using IL이 필요하지 않기 때문에 지침이 사라졌습니다.

"메모리"로 "당신은"내가 진술을 사용하는 사람들을 처음에 맨 위에 놓는 이유를 기억해야한다 "라는 것을 기억해야한다.

그러나, 당신이 의미하는 의미는 아닙니다. .NET 어셈블리는 일반적으로 주문형으로로드되므로 추가 명세서를 통해 성과 페널티가 발생하지 않습니다. 그러나 유지 관리를 위해서는 제거하고 싶을 것입니다.

이 맥락에서 "사용"키워드에 대한 Microsoft 정보는 다음과 같습니다. http://msdn.microsoft.com/en-us/library/sf0df423.aspx. 기본적으로 어셈블리에서 완전히 자격을 갖춘 이름을 사용하는 대안을 제공하지만 실제로 특정 키워드와 함께 메모리에 어셈블리를 가져 오거나 포함시키지 않습니다.

아니 그렇지 않아. 단순히 유형 이름 만 사용할 수있는 속기입니다.

StringBuilder

네임 스페이스 자격 유형 이름과 반대로 :

System.Text.StringBuilder

사용 명령문이 선언 된 파일에서.

아니요, 컴파일러가 약간 느리게 작동하게합니다. :)

그렇지 않습니다. 전체 이름으로 사용하는 객체를 정의 할 필요가 없도록 사용됩니다. System.io.file 대신 System.IO를 사용하는 경우 파일을 수행 할 수 있습니다.

실제로 객체를 만들 때까지 메모리에로드되지 않습니다. C ++와 달리 .NET 프레임 워크가 대상 머신에 설치되고 GAC에로드되고 Custom .DLL이 응용 프로그램 폴더의 빈 폴더에 있기 때문에 전체 라이브러리가 가져 오지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top