2017-08-16 12 views
5

Có cách nào để có nhiều mảng trong C#, bao gồm các mảng khác không? Rõ ràng tôi có thể làm điều này:Mảng nhiều loại C# (bao gồm các mảng khác)

object[] x = {1,"G",2.3, 2,'H'}; 

nhưng không này:

object[] x = {1,"G",2.3, 2,'H', {2} }; 

cách thích hợp để làm điều đó là gì?

Trả lời

7

Vấn đề là bạn không thể khởi tạo mảng bên trong theo cách này. Bộ phận initalizer mảng chỉ có thể được sử dụng trong một biến hoặc trường khởi tạo. Vì trạng thái lỗi của bạn:

Trình khởi tạo mảng chỉ có thể được sử dụng trong biến hoặc trình khởi tạo trường. Hãy thử sử dụng biểu thức mới insead

Bạn phải khởi tạo rõ ràng mảng lồng nhau. Làm theo cách này và nó hoạt động:

object[] x = { 1, "G", 2.3, 2, 'H', new int[]{ 2 } }; 
// Or a bit cleaner 
object[] x = { 1, "G", 2.3, 2, 'H', new []{ 2 } }; 

đọc thêm về Array Initializers

cú pháp của bạn sẽ có tác dụng nếu bạn muốn xác định một mảng 2 chiều:

object[,] x = { {"3"}, { 1 }, { 2 } }; 
4

object[] x = {1,"G",2.3, 2,'H', {2} }; đã sai và u có thể sử dụng

object[] x = { 1, "G", 2.3, 2, 'H', new int[]{ 2 } };

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