gpt4 book ai didi

c# - 为什么.Concat方法的返回值类型看起来有点奇怪 : System. Linq.Enumerable+(...)?

转载 作者:太空狗 更新时间:2023-10-30 00:33:21 27 4
gpt4 key购买 nike

我有 2 个实例:

     foo and bar

它们的类型是:

 foo.GetType().ToString()

返回:System.Collections.Generic.List`1[MyNameSpace.MyClass]

bar.GetType().ToString()

返回:System.Collections.Generic.List`1[MyNameSpace.MyClass]

当我连接它们时:

var foobar = foo.Concat(bar);

GetType() 返回System.Linq.Enumerable+d__71`1[MyNameSpace.MyClass]

问题:这是什么意思?不应该是 IEnumerable 吗?

最佳答案

不要混淆声明的返回类型和返回值的实际类型。 Concat声明返回 IEnumerable<T> , 但它实际上返回了一个实现了 IEnumerable<T> 的具体类型的实例. GetType返回具体类型,而不是声明的返回类型。

至于奇怪的名字,Concatiterator block 实现, 和迭代器 block 由编译器转换为名称如 Enumerable+d__71 的类型实现IEnumerable<T> .

关于c# - 为什么.Concat方法的返回值类型看起来有点奇怪 : System. Linq.Enumerable+(...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302619/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com