2013-10-25 2 views
1

while 루프가 종료되면 (더 이상 레코드가 읽히지 않음) 예외가 발생합니다 (catch 블록에 의해 발생하는 것처럼 보이거나 추가 된 전역 예외 처리기에서 로그되지 않습니다)).outer using 지시어는 중괄호로 지시문을 사용하여 바로 뒤 따르는 inner를 사용해야합니까?

using (var conn = new OleDbConnection(
    @"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Platydude;Password=Platypup;Data 
    Source=C:\Duckbill\DATA\DuckbillDAT03.MDB;Jet OLEDB:System 
    database=C:\Duckbill\Data\platypus.mdw")) 
{ 
    using (var cmd = conn.CreateCommand()) 
    { 
     . . . 
    } 
} 

을 ...하거나 수 :

using (var conn = new OleDbConnection(
    @"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Platydude;Password=Platypup;Data 
    Source=C:\Duckbill\DATA\DuckbillDAT03.MDB;Jet OLEDB:System 
    database=C:\Duckbill\Data\platypus.mdw")) 
using (var cmd = conn.CreateCommand()) 
{ 
    . . . 
} 

는 어떤 차이가 있습니까이 남아 있어야하는 경우,이 디버깅이 코드를 열심히 바라에서

, 내가 궁금해하기 시작했다? 그것은 똑같은 일이 일어나는 어떤 방법으로도 보이지 않습니다. 한 가지 방법이 다른 것보다 더 안전한 시나리오가 있습니까? IOW : 어느 기술이 선호됩니까?

+3

이 두 가지 사이에는 실제 차이점이 없습니다. 그러나 다른 줄 또는 두 줄을 추가해야하는 경우에 대비하여 중괄호로 묶는 경향이 있습니다. 나중에 변경할 소스 코드가 적습니다. – BlakeH

답변

4

기능적으로는 동일합니다. 스타일리쉬하게, 나는 불필요한 중괄호와 들여 쓰기를 제거하고 더 자연스럽게 읽으므로 (내가 본 것에서부터 대부분의 사람들과 마찬가지로) 후자를 선호한다. ("이것을 사용하는 것"대신에 "이것을 사용한다. { "}.