---------------------- 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培训、期待与您交流! ----------------------