C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.
퀴즈 질문 | |
예상답변/설명 | C#의 using(){...}블럭은 using() 안의 객체가 IDisposable 인터페이스를 구현했을 때 사용할 수 있다. using 블럭은 try ... finally 블럭으로 변경되면서 finally 블럭에서 해당 객체의 Dispose() 메서드를 호출한다.
using (SqlConnection cn = new SqlConnection(str))
{
//...
}
// 위의 using은 컴파일러에 의해 다음과 같이 변경된다
SqlConnection cn = null;
try
{
cn = new SqlConnection(str);
//....
}
finally
{
if(cn!= null) {
((IDisposable)cn).Dispose();
}
}
따라서, C#의 using 블럭은 Unmanaged 리소스를 해제하기 위해 IDisposable 을 구현 클래스의 해제 명령(Dispose 메서드)를 자동으로 호출해 주는 효과가 있다.
[추가질문] 만약 using 블럭 중간에서 에러가 발생했다면, Connection은 어떻게 되는가? |