2013-05-07 14 views
8

Sono fondamentalmente C++ guy, ora sto imparando C#. Durante la dichiarazione dell'array ho scoperto che C# si aspetta le parentesi quadre dopo il tipo a differenza di c, C++. C'è qualche ragione per le specifiche del linguaggio C# in questo modo?sintassi di dichiarazione di array C# sintassi di dichiarazione di array C++

+5

Sono anche un ragazzo C++, ma devo dire che trovo la sintassi della dichiarazione dell'array C contro-intuitiva. – juanchopanza

+0

@juanchopanza ya, sono d'accordo, ma ora lo uso :) – ZoomIn

+0

Infatti il ​​tipo effettivo in C++ è anche 'T [N]' (con le parentesi direttamente dopo il tipo di base), è solo la dichiarazione che deve essere scritta in modo diverso, il che è davvero un po 'contraddittorio. –

risposta

6

L'unica buona ragione mi viene in mente è quello di fare una chiara indicazione dei tipi di lista1 e lista2 in questa costruzione:

In C#:

int[] list1, list2; 

lista2 è un array di int.

In C++:

int list1[], list2; 

lista2 è un int.

La leggibilità è la chiave qui.

+0

Questo però non viene compilato in C++: è necessario "int list1 [], list2". –

+0

@DaveDoknjas true, modificherò la mia risposta –

3

È anche per coerenza (che aiuta la leggibilità).

In una dichiarazione di variabile C#, la specifica del tipo completo è sempre sulla sinistra del nome della variabile.

In C/C++ a volte una parte della specifica del tipo si trova a destra del nome della variabile, che è incoerente.

+0

Puoi darmi un esempio di parte della specifica del tipo sul lato destro di =, in C++ – ZoomIn

+0

@ZoomIn Spiacente, intendevo dire "nome variabile", non "=" ... Ho corretto il mio post. –

Problemi correlati