C#简单类型转换说明
2010-06-05 17:19
295 查看
两个简单类
class B
{
int x;
public void A()
{
}
}
class D : B
{
int y;
public void T()
{
}
}
测试代码以及简要说明
static void Main(string[] args)
{
Object o1 = new object();//通过编译
object o2 = new B();//通过编译
object o3 = new D();//通过编译
object o4 = o3;//通过编译
B b1 = new B();
B b2 = new D();//B为父类,编译通过,如不进行转换,只能调用B的方法或属性
D d1 = new D();
// B b3 = new object();//编译失败,object为B的父类
// D d3 = new object();//编译失败
B b4 = d1;//B为父类,编译通过
// D d2 = b2;//编译失败
D d4 = (D)d1;//显式转换,d1本身为D类型,运行无误
D d5 = (D)b2;//显式转换, b2也为D类型
D d6 = (D)b1;//显式转换,编译通过,运行出错,因为b1为B类型,为D的父类,父类不能转换成子类
B b5 = (B)o1;//编译通过,运行出错
B b6 = (B)b2;//编译通过,运行正常,b2为D类型
}
class B
{
int x;
public void A()
{
}
}
class D : B
{
int y;
public void T()
{
}
}
测试代码以及简要说明
static void Main(string[] args)
{
Object o1 = new object();//通过编译
object o2 = new B();//通过编译
object o3 = new D();//通过编译
object o4 = o3;//通过编译
B b1 = new B();
B b2 = new D();//B为父类,编译通过,如不进行转换,只能调用B的方法或属性
D d1 = new D();
// B b3 = new object();//编译失败,object为B的父类
// D d3 = new object();//编译失败
B b4 = d1;//B为父类,编译通过
// D d2 = b2;//编译失败
D d4 = (D)d1;//显式转换,d1本身为D类型,运行无误
D d5 = (D)b2;//显式转换, b2也为D类型
D d6 = (D)b1;//显式转换,编译通过,运行出错,因为b1为B类型,为D的父类,父类不能转换成子类
B b5 = (B)o1;//编译通过,运行出错
B b6 = (B)b2;//编译通过,运行正常,b2为D类型
}
相关文章推荐
- C#简单通用的进制转换,把非十进制的数据类型转换成十进制的,然后再转换成其他类型。
- C# 类型转换的一些简单方法
- 关于C#的dynamic类型,简单演示及说明
- C# CopyMemory 整数、浮点数内存互换(不是简单的类型转换)
- C# 各种类型的转换
- C#调用C++的DLL 所有数据类型转换方式
- (C#基本语法)3.简单类型
- C#.NET 中的类型转换
- C#基础--转义符及类型转换
- 140218 简单数据类型和转换
- C#中的类型转换
- C#几种简单数据类型笔记
- C#中隐式和显示类型转换
- ADA程序实例(类型、控制流、转换、简单数学运算等)
- C#类型转换
- 2、C#编程基础(三)——数据类型的相互转换
- C# 数据类型转换方法
- c# 类型转换小结
- C#调用dll时的类型转换总结
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志