黑马程序员--数组,索引器与集合(泛型) 异常(07)

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------


一.数组(Array)

    1. 数组相关概念

          ① 数组是具有索引的同类型对象的集合。补充:有了数组后,我们可以一次性声明多个相同类型的变量(这些变量在内存中是连续存储的),然后能够存放多个同一类型的值。数组的好处:对数据对象进行批量操作      例如:     int[] a=new int[30];//声明了一个名为a 并且数组长度为30的整型数组

         ② C#中声明一个数组的语法:

         数据类型[] 数组名=new 数据类型[数组长度] 或者 数据类型[] 数组名={对象1,对象2,..};

           注:虽然数组是这样直接声明的(C#提供了内置语法支持),但是C#中的数组和其它编程语言是不相同的,C#的数组都是对象,实际上声明的时候创建的是System.Array类型的对象。

         ③ 数组是具有内置的索引器,可以用来访问数组中每一个成员。

          访问方式:数组名[索引](索引从0开始)  比如 访问数组a中的第三个成员:a[2]

         ④ 既然上面说到数组其实就是一个Array类型的对象,那么它的类也封装了很多属性和方法提供给数组实例来使用。  

         → Length属性     用于返回数组的长度  int[] a=new int[20];int m=a.Length;

         → Sort()方法     用于给一维数组的值排序 (静态方法,调用时:Array.Sort(数组名))

         → Reverse()方法  用于反转一维数组中元素的顺序 (静态方法,调用时:Array.Reverse(数组名))

例如:

             

注:Reverse()方法用法和Sort()方法差不多 这里就不一一举例了。

         ⑤ 数组中的默认值:

         → Int类型的数组一旦创建了,里面的每一个元素初始化为0

         → 与值类型不同的是,引用类型不能初始化为默认值,它们一般会初始化为null;


特别注意:从上面总结的五点可以知道数组最大的两个特性:

                     第一,类型统一:也就是说数组是一个同类型对象的集合,一旦声明了一个数组,那么它的数据类型也确定了,只能存放这种数据类型的对象,不能存放多种不同数据类型的对象。

                     第二,长度固定:数组一旦声明好了,那么它的长度是不可变的,不能增加也不能减少。

         ⑥ 练习 求一个数组中的最大值 最小值,和总和  代码如下:

                                         

       2. 有params关键字的数组   

         问题:假如我们需要创建一个方法将任意多的整数输出到控制台,通过传入一个整数数组,并用foreach循环遍历数组。这样能实现吗? 问题在于数组的长度是不可变的。

          解决方法:在整数数组前面加params关键字,使得用户可以随便传入多少个整数都行

         ① 加params关键字的数组作用:在申明数组时,不用指明数组的长度。

          ② 加params关键字的数组一般用在作为方法参数个数不确定的情况下,而且一个方法中只能存在一个params关键字。

例如: 

             

       3. 索引器   

            C#中提供了按照索引器进行访问的方法
         方式:string this[int index]
               {
                get{} 
                set{}
               }
         在这个方式中,string为索引器的类型,[]中是参数列表,参数可以不止一个类型也不止是int;进行索引器写操作就是调用set代码块,在set内部使用value得到用户设置的值;进行读操作就执行get代码块

         4. 泛型集合List

            ① 它能够定义安全的数据结构,即范围广的类型,它能够避免繁琐的类型转换。
        例如1:

          List<int> list=new List<int>();  //定义一个int类型的list的集合,它的长度不可以不确定
          list.Add(3); //Add方法向list里边添加元素
          list.Add(13);
          list.Add(58);
         foreach(int i in list) //遍历输出list中的值
         {
           Console.WriteLine(i.ToString());
         }
         list.Remove(13);//表示删除这条数据
         list.Clear();//表示删除所有的数据
         list.count;//表示集合的长度

     例如2.

           //定义一个string类型的list的集合,它的长度不可以不确定
            Program s = new Program(); //实例化一个类,s为program类中的一个实例
           //这样才可以访问方法GetData();声明一个string类型的集合list1接收返回的集合
            List<string> list1=s.GetData();
            foreach (string i in list1) //遍历循环输出
            {
                Console.WriteLine(i);
            }
      public List<string> GetData()  //定义一个返回值为string类型的集合的方法
        {
            List<string> list = new List<string>();
            list.Add("58");
            list.Add("13");
            return list; //返回一个数组
        }

 

       ② List的一些常见方法,属性总结  

      → Capacity: 用于获取或设置List可容纳元素的数量。当数量超过容量时,这个值会自动增长。您可以设置这个值以减少容量。
      → Count:    用于获取数组中当前元素数量
       Add( ) :   在List中添加一个对象的公有方法
      → AddRange( ): 在List尾部添加实现了ICollection接口的多个元素
      Clear( ) :    在List内移除所有元素
      Contains( ): 测试一个元素是否在List内
      Insert( ) :在List内插入一个元素
      →Remove( ) :移除与指定元素匹配的第一个元素
      →RemoveAt( ) :移除指定索引的元素
     →Reverse( ) :反转List内元素的顺序
     →Sort( ) :对List内的元素进行排序
     →ToArray( ) :把List内的元素拷贝到一个新的数组内
     →trimToSize( ):将容量设置为List中元素的实际数目


      5. 异常处理

      在编写程序时,我们经常会遇到许多错误,比如用户的错误输入,内存不够,磁盘出错,网络资源不可用,数据库无法使用。在程序中经常采用异常处理方法来解决此类问题。
      ① 异常处理的方式:

        →使用throw语句无条件,即时的抛出异常,即自己抛出异常:throw new Exception。
      ②异常是由Try语句来处理的。try语句提供了一种机制来捕捉执行过程中的异常,它有以下三种可能的形式:
   
        →try-catch(s) ,try-finally ,try-catch(s)-finally

          

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值