2014-09-13 2 views
15

C++에 익숙하고 C++ 11이 제공하는 새로운 기능 중 일부를 시도한 후에 C#에 익숙해지기로 결정했습니다.C#은 C++ 11에서 decltype과 동일한 기능을합니까?

예상대로 프로그래밍 원리는 비슷하지만 일부 기능이 다릅니다. 차이점과 유사점은 내가 뒤쫓아 왔기 때문에 C#에 decltype (C++ 11)과 동일한 기능이 있는지 묻기로 결정했습니다.

int x = 4; 
decltype(x) y = 16; 
+0

나는 그렇게 생각하지 않는다. 리플렉션을 통해 유형 정보를 잃어 버릴 수도 있지만, 다시 입력하지 않고도 알려진 유형을 유지할 수 있다고는 생각하지 않습니다. – chris

+0

'decltype'은 대부분'template's를위한 것이라는 것을 알고 있습니다. C#은 훨씬 약한 시설을 가지고 있기 때문에 강하게 다른 부분 중 하나입니다. – Deduplicator

+0

약한가요? 아니. 다른? 확실한. C#에는 C++ * 템플릿 *처럼 보이는 generics *가 있지만 다른 메커니즘이 있습니다. 기능 세트가 중복됩니다. –

답변

9

decltype에는 해당하지 않습니다.

int x = 4; 
var y = x + 1; 

을하지만 다른 주어진 변수 또는 표현식에서 추론 유형으로 storngly 유형 변수를 선언 할 수있는 것 실제 구문 기능은 없습니다 :

어쩌면 추론이 decltype에 가까운 기능이 될 것입니다 입력합니다.

+4

흠, 형식 유추는'auto' /'decltype (auto)'과 동일합니다. –

+2

@ T.C. 음, "가장 가까운"이라고 말했는지 확인하십시오. 실제 대답은 * 없습니다. * –

+0

C#의 자동 형식 유추에 이미 익숙했습니다. C++ 11에도이 기능이 있지만 var 대신 auto를 사용해야합니다. –