案例1:
namespace e1
{
public enum Genders
{
Male,
Female
}
class Student
{
public Student(string name, int age, Genders gender, string hobby, int popularity)
{
this.name = name;
this.age = age;
this.gender = gender;
this.hobby = hobby;
this.popularity = popularity;
}
private string name;
public string Name
{
set { name = value; }
get { return name; }
}
private int age;
public int Age
{
set
{
if (value >= 18 && value <= 120)
{
age = value;
}
else
{
age = 18;
}
}
get { return age; }
}
private Genders gender;
public Genders Gender
{
set { gender = value; }
get { return gender; }
}
private string hobby;
public string Hobby
{
set { hobby = value; }
get { return hobby; }
}
private int popularity;
public int Popularity
{
set { popularity = value; }
get { return popularity; }
}
public void SayHi()
{
Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",name,age,gender,hobby,popularity);
}
}
}
——————————————————————————————————————————————————
namespace e1
{
class Program
{
static void Main(string[] args)
{
ArrayList arr = new ArrayList();
Student zhang = new Student("张靓靓", 25, Genders.Female, "唱歌", 100);
Student jay = new Student("周杰杰", 29, Genders.Male, "双截棍", 110);
Student lishi = new Student("李四", 35, Genders.Male, "越狱", 120);
//Add方法添加元素后返回所添加元素在ArrayList中的索引
//添加的元素是什么类型的,都会隐式转换为object类型
int index = arr.Add(zhang);
arr.Add(jay);
arr.Add(lishi);
//取值的时候他的返回值也是一个Object的类型,通常我们要对他做一个强制转换
//Student stu1 = (Student)arr[2];
//stu1.SayHi();
Console.WriteLine(index);//索引
Console.WriteLine("清空前元素个数"+arr.Count);//元素
Console.WriteLine(arr.Capacity);//容量
//arr.Clear();
//Console.WriteLine("清空后元素个数"+arr.Count);
Console.WriteLine("删除前:");
foreach (object obj in arr)
{
Student stu = (Student)obj;
stu.SayHi();
}
Console.WriteLine("删除后:");
//Remove方法通过对象来删除ArrayList里的元素,且自动更新索引
//arr.Remove(jay);
//arr.Remove(jay);
//Remove通过索引来删除ArrayList里的元素,
arr.RemoveAt(2);
//foreach (object obj in arr)
//{
// Student stu = (Student)obj;
// stu.SayHi();
//}
for (int i = 0; i < arr.Count; i++)
{
Student stu=(Student)arr[i];
stu.SayHi();
}
Console.ReadKey();
}
}
}
——————————————————————————————————————————————————————————————————————————————————————————————————————————
案例2:常见错误1
namespace e2
{
public enum Genders
{
Male,
Female
}
class Student
{
public Student(string name, int age, Genders gender, string hobby, int popularity)
{
this.name = name;
this.age = age;
this.gender = gender;
this.hobby = hobby;
this.popularity = popularity;
}
private string name;
public string Name
{
set { name = value; }
get { return name; }
}
private int age;
public int Age
{
set
{
if (value >= 18 && value <= 120)
{
age = value;
}
else
{
age = 18;
}
}
get { return age; }
}
private Genders gender;
public Genders Gender
{
set { gender = value; }
get { return gender; }
}
private string hobby;
public string Hobby
{
set { hobby = value; }
get { return hobby; }
}
private int popularity;
public int Popularity
{
set { popularity = value; }
get { return popularity; }
}
public void SayHi()
{
Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",name,age,gender,hobby,popularity);
}
}
}
———————————————————————————————————————————————————————————
namespace e2
{
class Program
{
static void Main(string[] args)
{
//常见错误1
//在删除ArrayList元素时由于它会自动的调整元素的索引
//在删除是注意所删除的索引的位置,以下删除方式索引会越界
ArrayList arr = new ArrayList();
arr.Add(new Student("张靓靓", 25, Genders.Female, "唱歌", 100));
arr.Add(new Student("周杰杰", 29, Genders.Male, "双截棍", 110));
arr.Add(new Student("李四", 35, Genders.Male, "越狱", 120));
arr.RemoveAt(0);
arr.RemoveAt(1);
//arr.RemoveAt(2);
Console.ReadKey();
}
}
}
————————————————————————————————————————————————————————————————————————————————————————————————————————
案例3 常见错误
namespace e3
{
public enum Genders
{
Male,
Female
}
class Student
{
public Student(string name, int age, Genders gender, string hobby, int popularity)
{
this.name = name;
this.age = age;
this.gender = gender;
this.hobby = hobby;
this.popularity = popularity;
}
private string name;
public string Name
{
set { name = value; }
get { return name; }
}
private int age;
public int Age
{
set
{
if (value >= 18 && value <= 120)
{
age = value;
}
else
{
age = 18;
}
}
get { return age; }
}
private Genders gender;
public Genders Gender
{
set { gender = value; }
get { return gender; }
}
private string hobby;
public string Hobby
{
set { hobby = value; }
get { return hobby; }
}
private int popularity;
public int Popularity
{
set { popularity = value; }
get { return popularity; }
}
public void SayHi()
{
Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",name,age,gender,hobby,popularity);
}
}
}
——————————————————————————————————————————————-——————
namespace e3
{
class Program
{
static void Main(string[] args)
{
//常见错误2
//stu1和stu2他们成员的值虽然相同,但是他们所在的内存中所开辟的空间并不是同一个
//所以删除stu2对象并不会把stu1对象也一起删除!
Student stu1 = new Student("张三", 18, Genders.Male, "桌球", 100);
Student stu2 = new Student("张三", 18, Genders.Male, "桌球", 100);
ArrayList arr = new ArrayList();
arr.Add(stu1);
arr.Add(stu2);
arr.Remove(stu2);
Console.WriteLine("ArrayList中的元素个数:" + arr.Count);
Console.ReadKey();
}
}
}