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();}}
}————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————案例4namespace 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();}}
}————————————————————————————————————————————————————————————案例5namespace 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();       }}
}————————————————————————————————————————————————————案例3namespace 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();}}
}

转载于:https://www.cnblogs.com/lijie007jh/archive/2012/06/20/2556967.html

第十六节 装箱拆箱 类和结构相关推荐

  1. Java自动装箱/拆箱 - Java那些事儿

    昨天Java基本数据类型和引用类型一文中漏了几张图,已经补上,需要的自己回头去看,本系列文章首发于公众号:saysayJava. 在让人疑惑的Java代码 - Java那些事儿 一文中我们说到编译器自 ...

  2. C#装箱,拆箱和强制转换(转)

    出处:https://www.cnblogs.com/fengjiulin110120/p/6605739.html 关系: 强制转换就包含有装箱拆箱操作,装箱就是把值类型转换成引用类型,反之就是拆箱 ...

  3. .Net装箱拆箱编程实例

    .Net装箱拆箱编程实例 一 装箱是将值类型转换为引用类型 :拆箱是将引用类型转换为值类型. 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来. ...

  4. Java基础笔记 – 增强的for循环For each循环 自动装箱拆箱 可变参数

    1.For each循环:1.1.语法:1.2.For each循环的使用:1.3.嵌套For each循环:1.4.三种循环遍历集合的列举:1.5.增强的for循环的缺点:2.自动装箱/拆箱(Aut ...

  5. 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)...

                                                    第二十六节决策树系列之Cart回归树及其参数(5) 上一节我们讲了不同的决策树对应的计算纯度的计算方法, ...

  6. CLR via C# 中关于装箱拆箱的摘录

     装箱: 为了将一个值类型转换成一个引用类型,要使用一个名为装箱(boxing)的机制.下面总结了对值类型的一个实例进行装箱操作时在内部发生的事情. 1.在托管堆中分配好内存.分配的内存量是值类型的各 ...

  7. 反射、装箱拆箱、ArrayList与Array的区别 - 天生舞男 - 博客园

    反射.装箱拆箱.ArrayList与Array的区别 Posted on 2005-09-11 23:11 天生舞男 阅读(125) 评论(0) 编辑 收藏 引用 网摘 所属分类: SPS 1 什么是 ...

  8. java自动装箱拆箱原理

    java自动装箱拆箱原理 看了很多博主都没写原理,只是浅显地说了自动装箱拆箱的含义,我就把这个必须知道的知识写一下吧 1.自动装箱 以int -> Integer为例,Integer integ ...

  9. java 装箱 拆箱的作用_Java中的装箱拆箱

    一)  装箱与拆箱 Java中有概念是一切皆对象,因为所有的类都默认继承自Object.但是,对于数据类型是个例外,如short,int,long,float,double, byte,char,bo ...

最新文章

  1. hive 表的常用操作
  2. C#编程-Access数据库的简单应用
  3. cla c 语言编译器,第九章 CLA_C2000_C_Compiler.pdf
  4. python 3.5.2页面_笔者操作win10系统搭建Python 3.5.2开发环境的详细方案
  5. 环一维数组最大子数组问题
  6. linux教程第四版第一章,第一章linux shell入门
  7. java泛型为伪泛型,什么,JAVA的泛型是伪泛型
  8. SVN客户端——SmartSVN功能详解
  9. [原创]电路仿真设计multisim 14安装,破解,汉化教程
  10. 高手的思维与打法:灰度思维,黑白决策
  11. ex is not shell_linux下环境变量详解
  12. 程序员的自我修养-读后感
  13. 你需要偷偷珍藏的java兼职平台
  14. VS中进行C#编码时智能提示由英文切换为中文
  15. 随机的Lazy-Greedy:lazier than lazy greedy
  16. 智能的尴尬--《命名和指称》
  17. 隐马尔可夫模型与语音识别
  18. Proxmox VE 7.2 备份恢复虚拟机
  19. OpenLayers 彻底清除测量图层Overlays
  20. 企业费控,驶向「一体化」

热门文章

  1. vue.congfig.js配置less全局主题等样式变量
  2. CG100-18款全新英朗,里程数据恢复成功!
  3. Vue项目 音乐播放器 学习笔记 列表数据 Ⅱ
  4. 资产安全计算机审计,北信源网络安全审计系统
  5. 用鲁大师硬件检测查看自己的电脑配置
  6. 机器人庄园作文_作文范文之你是大便的作文怎么写
  7. java 5只猴子分桃_通俗易懂、简单粗暴得解决猴子分桃问题
  8. 课工场 “微服私访”项目学习(六)
  9. ie浏览器调用本地文件无反应_IE浏览器工具--internet选项--设置--查看文件为什么打不开没反应...
  10. (转)格兰蒂亚2完美运行方法(不黑屏窗口化win7等)