不同数组声明的智能感知不同
本文关键字:智能 感知 声明 数组 | 更新日期: 2023-09-27 17:59:45
我用以下两种方式声明一个整数数组:
Array numbers = Array.CreateInstance(typeof(int), 10);
int[] numbers1 = new int[6];
我推测变量CCD_ 1和CCD_。但我对这两个人的感觉是不同的。我有更多的numbers1
选项。
为什么会这样?
不同之处在于numbers1
实现了IEnumerable<int>
和IEnumerable
;numbers
仅实现IEnumerable
。
(基本上,numbers
知道它是一个序列,但不知道它是什么类型的序列;numbers
0知道它是int
s的序列。)
由于我在程序开始时有一行using System.Linq
,所以我在numbers1
上使用了很多LINQ扩展方法,但在numbers
上只使用了一些。
(LINQ定义了查询数组和其他序列的方法。由于只有当您知道序列中的对象类型时,才能对序列进行有趣的查询,因此许多方法仅适用于IEnumerable<something>
序列,而不是普通的IEnumerable
序列。)
如果我去掉using System.Linq
,我得到的选项与它们完全相同。
可能是您自己已经为IEnumerable<int>
定义了很多扩展方法,但它可能是LINQ。