C# 编译器允许我写:
int k=new Int32();
但是,我无法为其分配任何值。
2个问题
1) new
不创建堆分配,如果是,那么堆栈<->值的东西呢?
2)我不能对 int k=new Int32();
做任何事情。我会在什么场景下使用它?
最佳答案
所有结构(int/Int32 是结构)都允许使用 new(),这意味着:将结构初始化为默认值,即结构中的所有字段都为零。大多数结构是不可变的——基元当然也是。基本上,你写的是一样的:
int k=0;
你可以用它做很多事情......但是你不能改变零的任何属性。零就是零就是零。
new
并不总是意味着“在堆上分配”。
关于c# - C# 中新的 Int32() 用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13539300/