c# - C# 中新的 Int32() 用法?

标签 c# .net .net-4.0 int

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/

相关文章:

c# - Xamarin 加载操作失败

c# - 如何重命名 Cosmos DB 中的文档属性?

c# - .Net 4.0 中的 Timeout.InfiniteTimespan?

c# - 在 Windows 应用商店应用程序中显示 html

c# - 具有 1000 个值的 Silverlight 组合框

c# - 读取系统音频输出流

.net - 如何确定 .NET 4 中当前的垃圾收集器模式是什么?

c# - WCF 应用端点

c# - 我的 Loadbalancer 持有 ssl 证书,所以对我站点的所有请求都是 http。如何处理需要重定向的情况?

c# - 在 WPF 中验证多个链接的数据绑定(bind) TextBox 值