2011-08-30 3 views
5

오늘 전에 보지 못했던 C# 코드 조각이 나타났습니다. 프로그래머는 중괄호 (if, class, function 등이 아님) 만 사용하여 코드 블록을 정의했습니다.C#의 부동 중괄호

{ 
    int i = 0; 
} 
i++; //compile error 

코드를보다 체계적으로 보이게하는 것 외에도 다른 목적이 있습니까? 이 "떠 다니는"문맥을 사용하는 것은 좋고, 나쁘지, 또는 어떤 연습이든간에?

+0

http://stackoverflow.com/questions/249009/do-you-use-curly-braces-for-additional-scoping – luketorjussen

+1

중복 질문에 대해 유감스럽게 생각합니다. – prestomanifesto

+0

2010 년에 편집 된 2008 질문에 ** duplicate **로 표시되어서는 안됩니다. ** 대답은 모두 ** 분명히 C# **가 아니므로 ** C#를 포함해야합니다. 그것이 ** 다시 열릴 것이라는 지명 ** – MickyD

답변

9

중괄호의 열기 및 닫기 집합을 사용하여 자체 포함 범위를 갖는 자체 포함 블록을 정의 할 수 있습니다.

일반적으로 이것은 좋은 프로그래밍 실습으로 간주되지 않습니다.

일반적으로 누군가 이와 같은 작업을 수행하는 경우 해당 장소에 메소드/기능을 만드는 것이 좋습니다.

0

이 목적은 int i이 실제로 그 아래의 증가 된 i과 다른 범위에 있음을 설명하기위한 것입니다.

1

그 코드에는 전혀 목적이 없습니다. 그/그녀가하려고했던 다른 것의 아마 유물. 주석에서 알 수 있듯이 i이 범위를 벗어 났으므로 컴파일되지 않습니다.

코딩 스타일의 관점에서 저는 개인적으로 그것을 좋아하지 않습니다. 이전에 누군가 자신의 코드를 "정리"하기 위해 부동 중괄호를 사용하는 것을 본 적이 없었습니다.

1

C# 정의 범위의 중괄호 {}. 중괄호가 끝나면 그 안에 정의 된 것은 모두 "범위를 벗어납니다".

예제는 무의미한 것처럼 보입니다. 나는 그것이 실제 코드에서 왜 사용될 것인지 상상할 수 없다. 나는 당신이 제시된 코드를 숙달했다고 가정하고 있는가?

+0

예. 실제로 사용 된 방식은 수동으로 HTML 코드를 렌더링하는 ASP 페이지에있었습니다. 중괄호는 각 요소 안에 무엇이 들어 있었는지 논리적으로 들여 쓰는 데 사용되었습니다. – prestomanifesto

1

이 중괄호 "범위"안에있는 변수는 범위를 벗어납니다.

0

해당 블록 내에서 변수의 범위를 제한합니다. 변수 i는 그 중괄호 밖에서는 볼 수 없습니다.

누군가가 코드를 분리하려고하지만, 필요하지 않을 때 이것을 사용하면 대부분의 경우 불필요 할 수도 있습니다.