2013-05-07 50 views
8

Tôi cơ bản là C++ guy, bây giờ đang học C#. Trong khi khai báo mảng tôi thấy rằng C# mong đợi các dấu ngoặc vuông sau kiểu không giống c, C++. Có bất kỳ lý do gì đặc tả ngôn ngữ C# theo cách này không?Cú pháp khai báo mảng C# so với cú pháp khai báo mảng C++

+5

Tôi cũng là một anh chàng C++, nhưng tôi phải nói rằng tôi tìm cú pháp khai báo mảng C trực quan. – juanchopanza

+0

@juanchopanza ya, tôi đồng ý, nhưng bây giờ sử dụng nó :) – ZoomIn

+0

Trong thực tế, loại thực tế trong C++ cũng là 'T [N]' (với dấu ngoặc trực tiếp sau loại cơ sở), nó chỉ là khai báo phải được viết khác biệt, điều đó thực sự là một mâu thuẫn. –

Trả lời

6

duy nhất lý do chính đáng tôi có thể nghĩ đến là làm cho một dấu hiệu rõ ràng của các loại list1 và List2 trong xây dựng này:

Trong C#:

int[] list1, list2; 

List2 là một mảng kiểu int.

Trong C++:

int list1[], list2; 

List2 là một int.

Tính dễ đọc là chìa khóa ở đây.

+0

Điều đó không biên dịch trong C++ mặc dù - bạn cần "int list1 [], list2". –

+0

@DaveDoknjas đúng, tôi sẽ chỉnh sửa câu trả lời của tôi –

3

Nó cũng phù hợp (giúp dễ đọc).

Trong khai báo biến C#, đặc tả kiểu hoàn chỉnh luôn ở bên trái tên biến.

Trong C/C++ đôi khi một phần của đặc tả loại nằm ở bên phải tên biến, điều này không nhất quán.

+0

Bạn có thể cho tôi ví dụ về một phần đặc tả loại ở bên phải của =, trong C++ – ZoomIn

+0

@ZoomIn Xin lỗi, tôi muốn nói "tên biến" chứ không phải "=" ... Tôi đã sửa bài đăng của mình. –

Các vấn đề liên quan