博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#装箱和拆箱(值类型和引用类型之间的转换)
阅读量:5275 次
发布时间:2019-06-14

本文共 1527 字,大约阅读时间需要 5 分钟。

面向对象编程中,封箱指把非对象类型的数值或数据,包装成对象类型反之,拆箱指把对象类型拆成非对象的数值或数据。

例子:定义一个Circle 类

1   class Circle 2     { 3         double radius; 4         public Circle(double param) 5         { 6             radius = param; 7         } 8  9         public double Area()10         {11             return Math.PI * radius * radius;//圆的面积12         }13     }

 

1     static void Main(string[] args) 2         { 3             Circle c = new Circle(5); 4             Console.WriteLine(c.Area()); 5  6             int i = 10; 7             Object o = i;//装箱操作,将整形变量i赋值给object类型 o 8             Console.WriteLine(o.ToString()); 9             int j = (int)o;//拆箱操作,将Object类型变量o,拆箱赋给整形变量j;10             Console.WriteLine(j);11           }

 

 

安全的数据类型转换方法:

is运算符,判断变量是否为指定数据类型。

1             o = c; 2             if (o is int) 3             { 4                 int k = (int)o; 5             } 6             else if (o is Circle) 7             { 8                 Circle c2 = (Circle)o; 9                 Console.WriteLine(c2.Area());10             }

as运算符。as 运算符类似于强制转换操作。但是,如果无法进行转换,则 as 返回 null 

1  int? k = o as int?; //int类型无法存储Null型; 2             if (k != null) 3             { 4                 Console.WriteLine(k);//说明转换成功,打印k的值。 5             } 6             else 7             { 8                 Circle c2 = o as Circle; 9                 if (c2 != null)10                 {11                     Console.WriteLine(c2.Area());12                     Console.ReadKey();13                 }14             }

 

转载于:https://www.cnblogs.com/SeekHit/p/4871389.html

你可能感兴趣的文章
Oracle_Statspack性能诊断工具
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>