非静态成员数组初始化的任何变通方法通常是指在不同条件下对成员数组进行初始化。这里给出一些变通方法的例子和它们的用法:
char[] myArray;
string str = "Data";
while (str.Length< sizeof(myArray)){
myArray = new char[str.Length];
str += str;
}
public class MyClass{
private byte[] _myArray;
public MyClass(){
_myArray = new byte[10];
}
}
public class MyClass{
static byte[] _myArray;
static MyClass(){
_myArray = new byte[10];
}
}
class Animal{
string name;
private Dog dog;
public Animal(string name, Dog dog){
this.name = name;
this.dog = dog;
}
}
class Dog{
string breed;
string color;
}
public static void Main(){
Animal dog = new Animal("Buddy", new Dog{breed = "Labrador Retriever", color = "Yellow"});
}
以上这些方法都能够在不初始化静态成员数组的情况下为其分配内存。注意,在使用非静态成员数组时使用构造函数、静态构造函数或对象构建器进行初始化时需要确保所有可能存在的构造函数的执行顺序。
领取专属 10元无门槛券
手把手带您无忧上云