use*_*676 4 c# variables memory-management new-operator
我想更好地理解使用'new'为变量分配内存与不需要new的情况之间的区别.
当我宣布
int i; // I don't need to use new.
Run Code Online (Sandbox Code Playgroud)
但
List<string> l = new List<string>();
Run Code Online (Sandbox Code Playgroud)
说"new int()"是否有意义?
您将需要使用new来分配任何引用类型(类).
可以在没有new的情况下声明任何值类型(例如int或structs).但是,您仍然可以使用新的.以下内容有效:
int i = new int();
Run Code Online (Sandbox Code Playgroud)
请注意,在初始化之前,您无法直接访问值类型.使用结构,使用new TheStructType()通常很有价值,因为它允许您充分利用结构成员,而无需首先显式初始化每个成员.这是因为构造函数执行初始化.对于值类型,默认构造函数始终将所有值初始化为等效值0.
此外,使用结构,您可以使用new非默认构造函数,例如:
MyStruct val = new MyStruct(32, 42);
Run Code Online (Sandbox Code Playgroud)
这提供了一种初始化结构内部值的方法.话虽如此,这里不需要,只有一个选项.