在哪里以及为什么使用 int a=new int?

2023-12-10

只是好奇,有什么区别:

int A = 100;

and

int A = new int();  

我知道 new 用于在堆上分配内存..但我真的不明白这里的上下文。


static void Main()
{
    int A = new int();
    int B = default(int);
    int C = 100;
    Console.Read();
}

编译为

.method private hidebysig static void  Main() cil managed
{
  .entrypoint
  // Code size       15 (0xf)
  .maxstack  1
  .locals init ([0] int32 A,
           [1] int32 B,
           [2] int32 C)
  IL_0000:  nop
  IL_0001:  ldc.i4.0
  IL_0002:  stloc.0
  IL_0003:  ldc.i4.0
  IL_0004:  stloc.1
  IL_0005:  ldc.i4.s   100
  IL_0007:  stloc.2
  IL_0008:  call       int32 [mscorlib]System.Console::Read()
  IL_000d:  pop
  IL_000e:  ret
} // end of method Program::Main

正如你所看到的,第一个只是初始化它,第二个是一样第三个初始化并设置为100。至于生成的IL代码,它们都在一行中初始化.

so

int A = new int();

是相同的

int A = default(int);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在哪里以及为什么使用 int a=new int? 的相关文章

随机推荐

  • 使用smack重新连接到xmpp服务器

    我正在尝试开发一个聊天应用程序 当互联网稳定时一切正常 就像我可以发送和接收消息一样 但是当互联网关闭一段时间时 xmpp 会关闭连接 当互联网恢复时 我尝试重新连接到服务器 成功重新连接后 我收到以下流错误Client already l
  • 如何将一个ImageView拖放到另一个ImageView上?

    我对 Android 还很陌生 但已经成功地管理了一些零碎的东西 我现在想要实现的是一个简单的拖放活动 它允许用户 将形状 ImageView 拖放到另一个形状 ImageView 上 如果图像 匹配 它应该替换它所放置的图像 如果没有 它
  • 如何在 filepond vue 上添加所需的验证?

    我读过这个文档 https github com pqina vue filepond 我尝试这样添加
  • Chrome 扩展 - 从后台网站的单独页面获取 html

    我做了一个扩展 可以跟踪一个人在漫画网站上阅读的漫画 并在他们的收藏夹页面中列出他们最后阅读的章节 我最近想出了一个有用的功能来使扩展变得更好一些 我想为用户提供一个选项 使其能够仅跟踪他们在网站上收藏的漫画 因此 当他们阅读时 扩展程序将
  • 最有效、最现实的免费网络应用程序负载测试器?

    我正在挑选工具来对我的 Ruby on Rails 应用程序进行负载测试 到目前为止我正在尝试 阿帕奇基准 自动工作台 httperf selenium trample 还有什么值得看的吗 我没有大量的硬件 因此效率是一个问题 著名的 至少
  • BeautifulSoup 在 Amazon EC2 机器上的行为有所不同

    我正在运行以下脚本 from bs4 import BeautifulSoup import urllib2 import sys print sys version url https www google com finance pag
  • 从 std::cin 读取密码

    我需要从标准输入读取密码并且想要std cin不要回显用户输入的字符 如何禁用 std cin 的回显 这是我当前正在使用的代码 string passwd cout lt lt Enter the password getline cin
  • 使用Polymer 2.0中的iron-scroll-threshold处理滚动,以实现scroll-target = document

    我正在尝试处理滚动阈值事件 使用以下代码行
  • QuickBooks 无法在 Google App Engine 上运行

    我试图通过运行这个简单的代码来从谷歌应用程序引擎在线连接到quickbooks OAuthCredentials oauthcredentials new OAuthCredentials consumerKey consumerSecre
  • 运行 shell 命令并捕获输出

    我想编写一个函数来执行 shell 命令并返回其输出作为字符串 无论是错误消息还是成功消息 我只想得到与使用命令行得到的相同结果 可以做这样的事情的代码示例是什么 例如 def run command cmd print run comma
  • java.library.path 中没有 mssql-jdbc_auth-8.2.1.x64

    我正在尝试连接到 Maven 项目中的 SQL DB 但不断出现以下异常 com microsoft sqlserver jdbc SQLServerException 此驱动程序未配置为集成身份验证 引起 java lang Unsati
  • 在 React 中使用动态键来 setState [重复]

    这个问题在这里已经有答案了 我从输入字段将值作为参数发送给设置状态的函数 我有多个输入字段 因此想使用它们的名称 等于它们的状态键 然后使用相同的函数并将键和值传递给设置状态的函数 这是我的代码
  • 如何向森林图添加箭头?

    我会在森林图中添加两个箭头 以便将论文发送到期刊 这是来自的演示图metafor forest require metafor data dat bcg res lt rma measure RR ai tpos bi tneg ci cp
  • 在同一字段上使用通配符的空白和数字的多个过滤条件不起作用

    尽管关于这个主题的问题很多 但我一直无法找到问题的解决方案 这可能是也可能不是我的错 我需要自动过滤一个范围以返回空格和以 614 开头的数字 该列已使用以下内容进行预格式化 Range B C NumberFormat 0 这是为了删除
  • 如何npm安装全局而不是root?

    我在一个 unix 机器上 没有 root 访问权限 我将 npmrc 文件 在用户的根目录中 更改为 prefix global npm 现在 当我执行 npm install g package name 时 它会安装在我的全局 npm
  • 根据列取两个列表的并集

    我正在使用 Linq to Sql 获取两个列表的并集 使用列表 1 和列表 2 var tr List1 Union List2 ToList 联合工作正常 但问题是它正在检查每一列并删除我想要的一些行 所以我想知道是否有一种方法可以仅基
  • C# 中的 GetType() 和 Typeof()

    itemVal 0 res int TryParse itemVal out num if res true num GetType typeof byte return true else return false goes here w
  • javascript - 如何将 unicode 字符串转换为 ascii [重复]

    这个问题在这里已经有答案了 如何将 unicode 字符串转换为 ascii 以便为友好的 url 制作一个漂亮的字符串 只有一个简短的字符列表可以在 URL 的路径组件中安全地传递 unreserved ALPHA DIGIT 所有其他字
  • 关闭所有 HTML 标签(不仅是 IMG)

    I saw this关于关闭 img 标签的问题和解答 但是 如果我还想关闭链接等其他标签怎么办 我试着写
  • 在哪里以及为什么使用 int a=new int?

    只是好奇 有什么区别 int A 100 and int A new int 我知道 new 用于在堆上分配内存 但我真的不明白这里的上下文 static void Main int A new int int B default int