OYO*_*ORF 0 c# arrays dynamic implicit-conversion
我正在尝试创建一个具有固定长度的var类型的数组.我在我创建的var Linked List类中使用它.我知道我想要创建的数组的大小,不知道什么是正确的语法?
这是代码:
public dynamic ToArray()
{
int counter = 0;
if (this.head == null)
return null;
else
counter = 1;
ListEntry i = this.head;
while (i.Next != null)
{
counter++;
i = i.Next;
}
var array = new[counter];
i = this.head;
for (int j = 0; j < array.Length; j++)
{
array[j] = i.Data;
i = i.Next;
}
return array;
}
Run Code Online (Sandbox Code Playgroud)
这部分不起作用:
var array = new[counter];
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
编辑:感谢大家的投入.我必须承认,当我发布时,我对语法糖的术语知之甚少.它现在更有意义.
这篇文章背后的想法是创建一个可以处理基本值类型的动态Linked List类.
我正在尝试创建一个var类型的数组
var它不是一个类型,它只是一个语法糖.implicit type definition你需要指定你的数组类型:
var array = new YourType[counter];
Run Code Online (Sandbox Code Playgroud)
使用var你让编译器推断出类型.但是在这种情况下它就像一个快捷方式.当你不确定表达式或方法的返回类型时(例如它在使用时很有用LINQ),它很有用.
var array = new[counter];
Run Code Online (Sandbox Code Playgroud)
在这一行中,如果你想创建一个可以包含任何类型元素的数组,你可以创建一个objects或者数组dynamic:
var array = new object[counter];
Run Code Online (Sandbox Code Playgroud)
要么:
var array = new dynamic[counter];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10232 次 |
| 最近记录: |