当前位置: 首页 > 编程语言 > C#

这两个数组声明有什么区别?分享

时间:2023-04-10 12:59:46 C#

这两个数组声明有什么区别?这两个声明似乎是相同的:int[]array1={11,22,33};和int[]array2=newint[]{11,22,33};但是在第二个示例中这部分newint[]需要什么?这有什么不同吗?在这种情况下没有区别——但第一种语法仅在声明变量时可用。来自C#4规范第12.6节:数组初始值设定项可以在字段声明、局部变量声明和数组创建表达式中指定。(“数组初始值设定项”是大括号中的位——数组创建表达式是指定newint[]或其他任何形式的一种形式。)当您不声明局部变量或字段时(例如,如果您传递参数传递给方法)你必须使用第二种形式,或者从C#3.0开始你可以使用隐式类型数组:Foo(new[]{1,2,3});没有不同。他们都是一样的。int[]数组1;//将array1声明为任意大小的int数组array1=newint[10];//array1是一个10元素数组array1=newint[20];//现在它是一个20元素数组int[]array2=newint[5]{1,2,3,4,5};//将数组2声明为大小为5的int数组,两者相同。有关初始化数组的信息,请参阅MSDN。由于您在声明的同一行提供了初始值设定项,因此您可以省略new运算符。//好的int[]i32Array={1,2,3,4,5};//这不是int[]i32Array;i32Array={1,2,3,4,5};如果您的定义和Thestartup发生在不同的行上,您将必须执行i32Array=newint[]{1,2,3,4,5};因此从技术上讲,可以在不初始化的情况下声明一个数组变量,但是在将数组分配给该变量时必须使用new运算符。两者完全相同。看这段代码:int[]arr1={1,2,3,4};int[]arr2=新的int[]{1,2,3,4};使用反射器,两者转化为如下:以上是C#学习教程:两种数组声明有什么区别?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——int[]expr_07=newint[]{1,2,3,4};int[]expr_19=newint[]{1,2,3,4};本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: