2013-05-07 33 views
8

Jestem w zasadzie C++ facetem, teraz uczę się C#. Podczas deklaracji tablicy znalazłem, że C# oczekuje nawiasów kwadratowych po typie przeciwnym c, C++. Czy istnieje jakiś powód, dla którego specyfikacja języka C# jest taka?Składnia deklaracji tablic C# vs Składnia deklaracji tablic C++

+5

Jestem również facet C++, ale muszę powiedzieć, że znajduję składni deklaracji C tablicy counter-intuitive. – juanchopanza

+0

@juanchopanza ya, zgadzam się, ale teraz go użyłem :) – ZoomIn

+0

Właściwy typ w C++ to także 'T [N]' (z nawiasami bezpośrednio po typie podstawowym), to tylko deklaracja, która musi być napisana inaczej, co jest rzeczywiście nieco sprzeczne. –

Odpowiedz

6

Jedyny powód, mogę myśleć o to, aby dokonać wyraźnego wskazania rodzajów listy1 i listy2 w tym budowy:

języku C#:

int[] list1, list2; 

lista2 jest tablicą wskazówki.

W C++

int list1[], list2; 

lista2 jest int.

Czytelność jest tutaj kluczowa.

+0

To nie kompiluje się jednak w C++ - potrzebujesz "int list1 [], list2". –

+0

@DaveDoknjas true, będę edytować moją odpowiedź –

3

Ma również spójność (ułatwia to czytelność).

W deklaracji zmiennej C# pełna specyfikacja typu znajduje się zawsze po lewej stronie nazwy zmiennej.

W języku C/C++ czasami część specyfikacji typu znajduje się po prawej stronie nazwy zmiennej, co jest niespójne.

+0

Czy możesz podać przykład części specyfikacji typów po prawej stronie =, w C++ – ZoomIn

+0

@ZoomIn Przepraszam, chciałem powiedzieć "nazwa zmiennej", a nie "=" ... Poprawiłem swój post. –