이 질문에는 이미 답변이 있습니다.
C #에서 Using 블록의 목적은 무엇입니까? 지역 변수와 다른 점은 무엇입니까?
IDisposable을 구현하는 유형은 자동으로 처리합니다.
주어진:
public class SomeDisposableType : IDisposable
{
...implmentation details...
}
이것들은 같습니다 :
SomeDisposableType t = new SomeDisposableType();
try {
OperateOnType(t);
}
finally {
if (t != null) {
((IDisposable)t).Dispose();
}
}
using (SomeDisposableType u = new SomeDisposableType()) {
OperateOnType(u);
}
두 번째는 읽고 유지하기가 더 쉽습니다.
Using
전화Dispose()
후using
코드가 예외를 던지더라도 - 블럭이 남습니다.
그래서 보통using
IO와 같은 클래스를 정리해야하는 클래스의 경우
그럼,이 블록을 사용 :
using (MyClass mine = new MyClass())
{
mine.Action();
}
같은 일을 할 것이다 :
MyClass mine = new MyClass();
try
{
mine.Action();
}
finally
{
if (mine != null)
mine.Dispose();
}
사용using
길고 읽기 쉽습니다.
mine.Action()
. 같은 것들mine=null
. 광산을 사용하지 않고 try / catch에서 설정할 수 있습니다. - Sam
MSDN에서 :
.NET Framework 공통을 통해 C # 언어 런타임 (CLR), 자동으로 저장에 사용 된 메모리를 해제합니다. 더 이상 필요하지 않은 개체. 메모리의 릴리스입니다. 비 결정적; 메모리가 해제됩니다. CLR이 수행하기로 결정할 때마다 가비지 컬렉션. 그러나 그것은 보통 한정판을 발매하는 것이 가장 좋다. 파일 핸들 및 네트워크 연결 속도 향상 가능한.
using 문을 사용하면 프로그래머가 객체를 지정할 때 사용하는 리소스가 공개되어야합니다. 그들. 오브젝트에 사용 된 성명서는 IDisposable 인터페이스. 이 인터페이스 Dispose 메서드를 제공합니다. 객체의 자원을 해제해야합니다.
즉,using
문은 .NET에 지정된 개체를 해제하도록 지시합니다.using
더 이상 필요하지 않으면 차단하십시오.
using 문은 C #에서 개체를 처리하는 데 사용됩니다.IDisposable
인터페이스.
그만큼IDisposable
인터페이스에는 하나의 공용 메소드가 있습니다.Dispose
개체를 처리하는 데 사용됩니다. using 문을 사용하면 명시 적으로 객체를 코드에 처리 할 필요가 없으며 using 문이이를 처리합니다.
using (SqlConnection conn = new SqlConnection())
{
}
위의 블록을 사용할 때 내부적으로 코드는 다음과 같이 생성됩니다.
SqlConnection conn = new SqlConnection()
try
{
}
finally
{
// calls the dispose method of the conn object
}
자세한 내용은 다음을 참조하십시오.C #에서 'using'문 이해하기.
using 블록에 코드를 배치하면 컨트롤이 블록을 떠나 자마자 해당 객체가 삭제됩니다 (반드시 수집 할 필요는 없지만).
실제로 IDisposable을 구현하는 멤버에게 Dispose 호출을 요구하지 않는 단순한 합성 설탕입니다.
using 문은 하나 이상의 리소스를 가져 와서 명령문을 실행 한 다음 리소스를 삭제합니다.
using
~으로 블록하다HttpClient()
! 만나다이 기사. - jbyrd