C#小白来提问(4): 为什么可以这么赋值啊

booirror 2015-10-05 09:17:27

为什么数组可以赋值给IEnumerable<>
为什么数组可以赋值给IEnumerable<>
为什么数组可以赋值给IEnumerable<>
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2015-10-06
  • 打赏
  • 举报
回复
其实是默认调用了一种叫做隐式转换的方法, 只是源代码看不出,下面是一个示例
public static implicit operator T(PageVar<T> value)
{
    return value.Value;
}
宝_爸 2015-10-06
  • 打赏
  • 举报
回复
数组的类型是System.Array. 而 System.Array的声明是: [SerializableAttribute] [ComVisibleAttribute(true)] public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable 来自: https://msdn.microsoft.com/en-us/library/system.array(v=vs.110).aspx
  • 打赏
  • 举报
回复
所有继承自IEnumable的接口都可以,这是OO语言都支持的东西
skyandcode 2015-10-06
  • 打赏
  • 举报
回复
跟你自己定义的是一样的,你可以反编译看看。 interface ISendable { void Send(); } class EmailSender : ISendable { public void Send(){} } ISendable sender = new EmailSender(); sender.Send();
ajianchina 2015-10-05
  • 打赏
  • 举报
回复
因为数组实现了IEnumerable接口,所以不仅数组,像List也可以赋值给他。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧