Không có cách nào dễ dàng hơn. Nếu bạn không thích vòng lặp, bạn có thể sử dụng
MyClass[] array = new[] { new MyClass(), new MyClass(), new MyClass(), new MyClass() };
sẽ cung cấp cho bạn một mảng có 4 phần tử MyClass, được xây dựng với hàm tạo mặc định.
Nếu không, bạn chỉ có tùy chọn sử dụng vòng lặp.
Nếu bạn không muốn viết vòng lặp rằng mỗi khi bạn muốn xây dựng mảng của bạn, bạn có thể tạo một helper-phương pháp, ví dụ như một phương pháp khuyến nông:
static class Extension
{
public static void ConstructArray<T>(this T[] objArray) where T : new()
{
for (int i = 0; i < objArray.Length; i++)
objArray[i] = new T();
}
}
Và sau đó sử dụng nó như này:
MyClass[] array = new MyClass[10];
array.ConstructArray();
Nguồn
2010-06-12 09:43:26
Nếu bạn có một cấu trúc, sau đó bạn không cần phải khởi tạo tất cả các mục, như họ đã được phân bổ với giá trị mặc định. –
Có, tôi biết rằng – Freshblood