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

这个新缩写是什么?分享

时间:2023-04-10 17:08:32 C#

这个新的简写是什么?我似乎找不到任何关于new[]应该是什么的文档。从下面的示例中,它似乎是对象数组的简写varjson=new[]{newobject[]{"20-Jun-2008",200},newobject[]{"20-Jun-2009",250}};这些是隐式类型数组。请参阅C#3.0规范。扩展数组创建表达式的语法(§7.5.10.2)以支持隐式类型的数组创建表达式:array-creation-expression:...new[]array-initializerinimplicitlytypedarraycreationexpressions,数组实例的类型从数组初始值设定项中指定的元素推断。具体来说,由数组初始值设定项中的表达式类型组成的集合必须恰好包含一种类型,集合中的每种类型都可以隐式转换,如果该类型不是null类型,则创建该类型的数组。如果无法推断出类型,或者推断出的类型为null类型,则会发生编译时错误。下面是一个隐式类型数组创建表达式的示例:vara=new[]{1,10,100,1000};//int[]varb=new[]{1,1.5,2,2.5};//double[]varc=new[]{"hello",null,"world"};//string[]vard=new[]{1,"one",2,"two"};//错误最后一个表达式导致编译时错误,因为int和string都不能隐式转换为另一个。在这种情况下,必须使用显式类型数组创建表达式,例如将类型指定为object[]。或者,可以将其中一个元素强制转换为公共基类型,然后这将是推断的元素类型。隐式类型数组创建表达式可以与匿名对象初始值设定项组合以创建匿名类型数据结构。例如:varcontacts=new[]{new{Name="ChrisSmith",PhoneNumbers=new[]{"206-555-0101","425-882-8080"}},new{Name="BobHarris",PhoneNumbers=new[]{"650-555-0199"}}};表示法是隐式类型化数组声明。在您的情况下,它是对象数组的数组。这意味着new[]是一个隐式类型数组。由于它是隐式类型的,因此您必须为其分配一些内容,如本例所示。就像您必须使用var关键字一样。这是隐式类型。由于此集合中的所有元素都是对象数组,因此编译器可以推断数组本身必须是对象数组的集合。以上是C#学习教程:这个新的缩写是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: