数组的协变

   // 1。数组协变的概念:引用类型的数组,子类的数组类型可以赋值给父类的类型。
   // 两个条件:
   // 1。必须是引用类型的数组
   // 2。数组元素的类型之间存在父子关系(存在隐式转换)
   // 3。值类型的数组没有协变

   double[] doubles = new double[3];
   doubles[0] = 10;
   doubles[1] = 20;
   doubles[2] = 30;
   // 虽然10是int类型,但值类型的数组没有协变。是隐式转换。


   Animal[] animals = new Animal[2];
   animals[0] = new Dog() { Id = 1, Name = "京巴" };
   animals[1] = new Dog() { Id = 2, Name = "土狗" };

   Animal[] animals1 = new Dog[2] {
       new Dog() { Id = 1, Name = "京巴1",Age=10 },
       new Dog() { Id = 2, Name = "土狗2",Age=20 }
   };

   foreach (var item in animals1)
   {
       // item是哪一种类型?Animal还是Dog?Animal
       Dog dog = (Dog)item;
       Console.WriteLine($"Id:{dog.Id},Name:{dog.Name},Age:{dog.Age}");
   }
 

API

 Random rnd = new Random();
 rnd.Next(); 
 rnd.NextDouble();
 rnd.NextBytes();


 int[,,] nums = new int[2,3,4];
 Console.WriteLine(nums.Length); //24
 Console.WriteLine(nums.GetLength(2)); //4
 Console.WriteLine(nums.LongLength);//24
 Console.WriteLine(nums.GetLongLength(0));//2
 Console.WriteLine(nums.GetLongLength(1));//3
 Console.WriteLine(nums.Rank); //3 返回维数


 int[] nums2 = new int[3];
 nums2.Initialize();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值