You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教C#中两种数组初始化声明方式的区别

C#两种数组初始化写法的区别

这两种数组初始化方式在运行时没有任何区别,最终都会生成完全相同的IL代码,创建出包含1,2,3的int类型数组。二者的差异仅存在于语法层面:

  • 第一种写法 int[] array = new int[3] { 1, 2, 3 }; 属于显式指定数组长度的初始化方式。需要注意的是,这里声明的长度必须和初始化元素的数量严格匹配,比如写new int[4] {1,2,3}或者new int[2] {1,2,3}都会触发编译错误。
  • 第二种写法 int[] secondArray = { 1, 2, 3 }; 是隐式推断数组长度的简化语法,编译器会自动统计初始化元素的个数,将数组长度设为对应数值。但这种写法仅能在变量声明的同时使用,如果是对已声明的变量赋值(比如array = {1,2,3};)会直接编译报错,必须改为array = new int[] {1,2,3};的形式。

简言之,前者是“先定长度再填元素”,后者是“填元素让编译器算长度”,最终运行效果完全一致,只是语法便捷性上的差异。

内容的提问来源于stack exchange,提问作者Valerons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:40:31