一、类型转换
1.任何类型都可以转换为其基类类型,用隐式转换完成;
2.任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
3.使用GetType可以取得任何对象的精确类型;
4.基本类型可以使用Convert类实现类型转换;
5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
6.值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
二、is/as示例
is转换规则:
1. 检查对象类型的兼容性,并返回结果true(false);
2.不会抛出异常;
3.如果对象为null,刚返回false;
示例:
as转换规则:
1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2.不会抛出异常;
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
示例:
注:as比is少执行一次兼容性检查,性能可能会高一点点
1.任何类型都可以转换为其基类类型,用隐式转换完成;
2.任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
3.使用GetType可以取得任何对象的精确类型;
4.基本类型可以使用Convert类实现类型转换;
5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
6.值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
二、is/as示例
is转换规则:
1. 检查对象类型的兼容性,并返回结果true(false);
2.不会抛出异常;
3.如果对象为null,刚返回false;
示例:
C#代码
- object o = "abc";
- if (o is string) //执行第一次类型兼容性检查
- {
- string s = (string)o; //执行第二次类型兼容性检查,并转换
- MessageBox.Show("转换成功!");
- }
- else
- {
- MessageBox.Show("转换失败!");
- }
as转换规则:
1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2.不会抛出异常;
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
示例:
C#代码
- object o = "abc";
- string s = o as string; //执行第一次类型兼容性检查,并返回结果
- if (s != null)
- MessageBox.Show("转换成功!");
- else
- MessageBox.Show("转换失败!");
注:as比is少执行一次兼容性检查,性能可能会高一点点
本文深入解析了C#中类型转换的概念,包括隐式转换、显示转换、使用GetType方法获取精确类型、基本类型转换以及值类型与引用类型之间的转换。同时详细介绍了is和as关键字的区别及用法,包括兼容性检查、类型转换过程以及它们在实际应用中的优势。
994

被折叠的 条评论
为什么被折叠?



