第十六节 装箱拆箱 类和结构

View Code
案例1:装箱拆箱

class Program
    {
        /// <summary>
        /// 装箱,拆箱
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            //装箱:就是值类型到引用类型的转换
            //值类型对值类型的转换叫做数据转换
            //值类型
            int i = 123;
            //值类型赋给引用类型称为装箱
            Object o = i;
            i = 567;
            Console.WriteLine("值类型:{0}",i);
            Console.WriteLine("引用类型:{0}",o);

            //拆箱:将引用类型转换给值类型
            int j = (int)o;
            Console.WriteLine("值类型:{0}",j);

            //
            object obj = 100;
            int jt = (int)obj;
            Console.WriteLine(jt);
            Console.ReadKey();

        }
    }

——————————————————————————————————————————————————————————

案例2:

  char[] c=new char[2]{'H','I'};
            string str = new string(c);
            Console.WriteLine(str);

            Object o = new object();
            Console.ReadKey();

————————————————————————————————————————————————————————

案例3:类和结构

namespace e3
{
    public enum Genders
    { 
        Male,Female
    }

    class Student
    {

        public string name;

        public int age;

        public Genders genders;

        public string hobby;

        public int popularity;


        public void Vote(Student stu)
        {
            stu.popularity++;
        
        }

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}", name, age, genders, hobby, popularity);
        }
    }
}

——————————————————————————————————————————————————————

namespace e3
{
    struct studentStruct
    {
        public string name;

        public int age;

        public Genders genders;

        public string hobby;

        public int popularity;
        public void Vote(ref studentStruct ss)
        {
            ss.popularity++;
           
        }

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",name,age,genders,hobby,popularity);
        }
    }
}

 

——————————————————————————————————————————————————————

namespace e3
{
    class Program
    {
        static void Main(string[] args)
        {    
            studentStruct ss1 = new studentStruct();
            //studentStruct ss1;
            ss1.age = 20;
            ss1.genders = Genders.Male;
            ss1.hobby = "越狱";
            ss1.name = "Scofield";
            ss1.popularity = 100;
            ss1.SayHi();
            ss1.Vote(ref ss1);//加上ref 变成传引用类型
            ss1.SayHi();
            //


            Student stu1 = new Student();

            stu1.age = 20;
            stu1.genders = Genders.Male;
            stu1.hobby = "越狱";
            stu1.name = "Scofield";
            stu1.popularity = 100;
            stu1.SayHi();
            stu1.Vote(stu1);
            stu1.SayHi();
            Console.ReadKey();

        }
    }
}

 

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

案例4

namespace e5
{
    public enum Genders
    {
        Male,Female
    }
    class Student
    {
        public Student(string name, int age, string hobby, Genders gender, int popularity)
        {
            this.name = name;
            this.age=age;
            this.hobby = hobby;
            this.gender = gender;
            this.popularity = popularity;
        }
        private string name;
        private int age;
        private string hobby;
        private Genders gender;
        private int popularity;

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},爱好:{2},性别:{3},受欢迎度:{4}", name, age, hobby, gender, popularity);
        }

    }
}


——————————————————————————————————————————————————————

namespace e5
{
    class MyClass
    {
        public MyClass(string className, Student[] stu)
        {
            this.ClassName = className;
            this.stu = stu;
        }
        //班级名称
        private string className;
        public string ClassName
        {
            set { className = value; }
            get { return className; }
        }
        //班级的学生(数组)
        private Student[] stu;
        public Student[] Stu
        {
            set { stu = value;}
            get { return stu; }
        }

        public void Display()
        {
            Console.WriteLine("班级是:{0}",className);
        }

    }
}

 

————————————————————————————————————————————————————————

namespace e5
{
    class Program
    {
        static void Main(string[] args)
        {
            Student[] stu = new Student[3]
            {
                 new Student("张江江", 25, "唱歌", Genders.Female, 100),
                 new Student("周杰杰", 29, "耍耍双截棍", Genders.Male, 101),
                 new Student("Scofield", 25, "越狱", Genders.Male, 102)
            };

            //stu[0] = new Student("张江江", 25, "唱歌", Genders.Female, 100);
            //stu[1] = new Student("周杰杰", 29, "耍耍双截棍", Genders.Male, 101);
            //stu[2] = new Student("Scofield", 25, "越狱", Genders.Male, 102);

 

            MyClass c1 = new MyClass("LGXRDotNet", stu);
            c1.Display();
            //for (int i = 0; i <c1.Stu.Length; i++)
            //{
            //    c1.Stu[i].SayHi();            
            //}

            Student[] stu2=c1.Stu;
            
            for (int i = 0; i < stu2.Length; i++)
            {
                Student s = stu2[i];
                s.SayHi();
            }
       Console.ReadKey();
        }
    }
}

————————————————————————————————————————————————————————————

案例5

namespace e4
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] array={1,2,3,4,5};

            ToEven(array);

            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine(array[i]);     
            }

            Console.ReadKey();
        }
        public static void ToEven(int[] arr)
        {

            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = arr[i] * 2;
            
            }
            
        }
    }
}
View Code
案例1:

namespace e6
{
    public enum Genders
    { 
        Male,Female
    }
    class Student
    {

        private string name;
        public string Name
        {
            set { name=value;}
            get { return name; }
        }
        private int age;
        private Genders gender;
        private string hobby;
        private int popularity;

        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;     
        }

        public void SayHi()
        {
            Console.WriteLine("姓名:{0},年龄:{1},性别:{2},爱好:{3},受欢迎度:{4}",name,age,gender,hobby,popularity);
        }
    }
}
——————————————————————————————————————————————————

namespace e6
{
    class Students
    {
        Student[] stu = new Student[3];
        public Students()
        {
            stu[0]=new Student("张江江",26,Genders.Female,"唱歌",100);
            stu[1]=new Student("周俊杰",27,Genders.Male,"双截棍",110);
            stu[2]=new Student("Scofield",36,Genders.Male,"越狱",105);
        }

        //访问修饰符 数据类型 this[参数]
        //{
            //get{.............}
        //}


        public Student this[int index]
        {
            get 
            {
                if (index>stu.Length-1)
                {
                    return null;
                }
                return stu[index];
            }
        }

        public Student this[string name]
        {
            get 
            {
                int i ;
                bool found=false;
                for (i = 0; i < stu.Length; i++)
                {
                    Student s = stu[i];
                    if (s.Name == name)
                    {
                        found = true;
                        break;
                    }
                }
                if(found)
                {
                    return stu[i];
                }
                return null;
            }     
        }
    }
}

————————————————————————————————————————————————————————

namespace e6
{
    class Program
    {
        static void Main(string[] args)
        {
            Students stus1 = new Students();
            Student stu1 = stus1[1];
            stu1.SayHi();


            stu1=stus1["Scofield"];

            stu1.SayHi();
      

            Console.ReadKey();
        }
    }
}


——————————————————————————————————————————————————————————————————————————————————————————————————————

案例2 圆的周长和面积

namespace l1
{

     struct Circle
    {
         
         const  double pi=3.14159265358979;
         public double r;
      
        public  Circle(double r)
        {
            this.r=r;
            Console.WriteLine("圆的周长是:{0}", 2 * pi * r);

            Console.WriteLine("圆的面积是:{0}", pi * r * r);
           
        }

    }
}

————————————————————————————————————————————

namespace l1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入圆的半径r:");
            double r = Convert.ToInt32(Console.ReadLine());

            Circle cc1 = new Circle(r);
            Console.ReadKey();       
        }
    }
}

————————————————————————————————————————————————————

案例3

namespace l2
{
    class Course
    {
        private string number;
        private string name;
        public string Name
        {
            set { name = value; }
            get { return name; }
        
        }
        private int hour;
        private string teacher;

        public Course(string number,string name,int hour,string teacher)
        {
            this.number = number;
            this.name = name;
            this.hour = hour;
            this.teacher=teacher;
        }
        public void SayHi()
        {

            Console.WriteLine("课程编号:{0}\n课程名称:{1}\n课时:{2}\n授课老师:{3}", number, name, hour, teacher);
        }
    }
}


————————————————————————————————————————————————————————

namespace l2
{
    class Courses
    {
        Course[] cs = new Course[3];
        
      
        public  Courses()
        {
            cs[0] = new Course("ASD001", ".NET", 5, "新老师");
            cs[1] = new Course("ASD002", "C#", 25, "古老师");
            cs[2] = new Course("ASD003", "F#", 8, "天老师");
        }

        //访问修饰符 数据类型 this[参数]
        //{
        //get{.............}
        //}


        public Course this[string name]
        {
            get
            {
                int i;
                bool found = false;
                for (i = 0; i < cs.Length; i++)
                {
                    Course c = cs[i];
                    if (c.Name == name)
                    {
                        found = true;
                        break;
                    }

                }

                if (found)
                {
                    return cs[i];
                }
                return null;
            }
        }      
    }
}

——————————————————————————————————————————————————————

namespace l2
{
    class Program
    {
        static void Main(string[] args)
        {
            Courses cos1 = new Courses();
            Course c1 = cos1[".NET"];
            c1.SayHi();
            Console.ReadKey();
        }
    }
}

 

posted @ 2012-06-20 21:04  ComBat  阅读(139)  评论(0编辑  收藏  举报