news 2026/1/16 3:41:30

C#显示转换和隐式转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#显示转换和隐式转换

显示转换和隐式转换

为什么要转换?

类型转换,把一个类型转成另外一个类型,C#分为显示转换和隐式转换,主要区分点在于需不需要我们自己写代码进行转化,是否存在数据丢失问题。(编译器是否自动转换、是否存在数据丢失问题

隐式转换

编译器自动转换,并且不存在数据丢失的场景(例如值类型把小空间的数赋值给大空间的变量 如

int a=10;

double b=a;//编译器自动转换

Console.WriteLine(b);//10 数据没有丢失

把派生类赋值给基类对象

class Aninmal{} class Cat:Aninmal { public void Speak() { Console.WriteLine("miao"); } }

Aninmal aninmal基类 new Cat();派生类
Aninmal aninmal = new Cat();//派生类对象

规则

值类型:小区间往大区间可以转换

引用类型:把子类对象赋值给父类对象

有符号不能往无符号去转换

显示转换

什么是显示转换

需要我们自己写转换代码,但会出现数据丢失的情况

语法:(需要转换的类型)变量:(int)a

值类型显示转换

int a1 = 300;
byte a2 = (byte)a1;//出现数据丢失
Console.WriteLine(a2);//44
int a3 = -129;
uint a4 = (uint)a3;
Console.WriteLine(a4);// 出现数据丢失

引用类型的显示转换

本质上是Animal对象,转成Cat,转换失败,程序会直接崩溃
Aninmal aninmal1= new Aninmal();//父类对象
Cat cat = (Cat)aninmal1;//强制转换cat类型,但是本质上是Animal对象,本质不能这样做,但是编译不会报错
cat.Speak();报错

as和is

如果想要类型安全转换,不让程序崩溃,可以通过as和is进行转换

Aninmal aninmal1 = new Aninmal();
Cat cat = aninmal1 as Cat;//如果转成失败为null 防止程序崩溃
if (cat != null) { cat.Speak(); }

if(aninmal1 is Cat c)//先判断再转换,aninmal是不是Cat对象,如果是Cat对象,转成c对象
{
c.Speak();//能调用但执行不了
}

is和as的区别

as先类型判断,在进行转换,转换失败为null,永远不抛异常、使用范围:不能使用值类型

is只有判断,如果写成aninmal1 is Cat c(模式匹配)这种类型,可以先判断在转换、返回值为true和false、可以使用任意类型

注意

//如果本质是Cat对象,强制转成Cat对象,可以整除转换
Aninmal aninmal2 = new Cat();//本质上是cat对象,
Cat cat1 = (Cat)aninmal2;
cat1.Speak();//能打印

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/12 6:39:48

基于TensorFlow的个性化学习路径推荐

基于TensorFlow的个性化学习路径推荐 在在线教育平台日均产生数亿条学习行为数据的今天,一个学生刚答错三道关于“二次函数”的题目,系统就立刻推送了一段微课视频和两道基础练习题——这不是巧合,而是由深度学习驱动的个性化推荐系统在实时运…

作者头像 李华
网站建设 2026/1/10 8:27:23

【AI操控手机新纪元】:Open-AutoGLM本地化部署的7大核心步骤

第一章:Open-AutoGLM控制手机怎么部署Open-AutoGLM 是一个基于大语言模型的自动化移动设备控制框架,能够通过自然语言指令实现对安卓手机的操作。部署该系统需要准备合适的运行环境、配置设备连接,并启动核心服务模块。环境准备 部署前需确保…

作者头像 李华
网站建设 2025/12/27 15:40:50

Java毕设选题推荐:基于Web的影视资源管理系统设计与实现存储影视剧本(分镜、台词)、素材信息(视频、音频、图片)【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/5 14:20:52

TensorFlow在量化交易策略回测中的应用

TensorFlow在量化交易策略回测中的应用 金融市场正以前所未有的速度演进。随着高频数据的普及、多因子模型的复杂化以及监管对可解释性和审计能力的要求日益严格,传统的量化研究方式——依赖线性回归、简单移动平均或基于脚本的手动回测——已经难以应对现实挑战。尤…

作者头像 李华