黑马程序员学习日记(7)--索引器与枚举类型

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

索引器:

索引器为我们提供了通过索引方式方便访问类的数据成员的方法

类 里边的构造函数:public string this[int index]索引器的index,参数可以不止一个,也可以不止一个类型(原来可变参数在这里已经讲过了),即索引也可以重载。string的索引器其实是一个只读的索引器,可以通过int得到char。

class Program
    {
        static void Main(string[] args)
        {
            int[] i = { 1,2,3};
            int j=i[0];
            Console.WriteLine("{0}",i[2]);

            Person p1 = new Person();
            p1[1] = "小小明";//通过类的构造函数的索引器来对person类的字段设置值
            p1[0] = "郭美美";
            Console.WriteLine("{0}爱上了{1}", p1[0], p1[1]);//通过person类的索引器读取person的私有字段,可以设置为只读的,其实string就是只读的字段,可以看一下定义

            Person p2=new Person();
            Console.WriteLine(p2[200,"男",1]);//调用多重索引器的构造函数

            Console.ReadKey();

        }
    }
    class Person
    {
        private string firstname = "曹";
        private string secondname = "三";
        public  string this[int index]//构造方法索引器
        {
            get 
            {
                if (index == 0)
                {
                    return firstname;
                }
                else if (index == 1)
                {
                    return secondname;
                }
                else
                {
                    throw new Exception("非法值");
                }
            }
            set
            {
                if (index == 0)
                {
                    firstname = value;
                }
                else if (index == 1)
                {
                    secondname = value;
                }
                else
                {
                    throw new Exception("非法值!");
                }
            }
        }
        public string this[int x, string gender, int index]//索引器可以是多个索引值的构造函数
        {
            get 
            {
                if (index == 0)
                {
                    return firstname + gender + x;
                }
                else if (index == 1)
                {
                    return secondname + gender + x;
                }
                else
                {
                    throw new Exception("非法值");
                }
            }
        }
    }
}

枚举

确定几种值的取值范围。定义枚举的时候一般和类同级,如定义一个枚举后,则用它生命的变量只能从其初始的值中取值。bool值实际上是内置的枚举

enum Gender{male,female,unkone }//枚举的级别与类同级
    class Program
    {
        static void Main(string[] args)
        {
            Gender g1 = Gender.female;//通过枚举设置的变量只能有由枚举初始化的值中的值选择,限制了取值范围
            //Gender g2 = "male";//非法
            //Gender g3 = Gender.konw;//非法
        }
    }


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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值