我想更好地理解使用“new”为变量分配内存与不需要 new 的情况之间的区别。
当我声明
int i; // I don't need to use new.
但是
List<string> l = new List<string>();
说“new int()”有意义吗?
最佳答案
您将需要使用 new 来分配任何引用类型(类)。
任何值类型(例如 int 或 structs)都可以在没有 new 的情况下声明。但是,您仍然可以使用新的。以下是有效的:
int i = new int();
请注意,您不能直接访问一个值类型,直到它被初始化。对于结构,使用 new TheStructType()
通常很有值(value),因为它允许您充分利用结构成员,而不必先显式初始化每个成员。这是因为构造函数进行了初始化。对于值类型,默认构造函数总是将所有值初始化为 0 的等价物。
此外,对于结构,您可以将 new
与非默认构造函数一起使用,例如:
MyStruct val = new MyStruct(32, 42);
这提供了一种在结构内部初始化值的方法。也就是说,这里不是必需的,只是一个选项。
关于C#:哪些数据类型需要NEW来分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098292/