news 2026/4/16 10:03:55

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/4/13 8:31:16

【课程设计/毕业设计】基于Web的影视资源管理系统设计与实现剧本管理、素材存储、版本管控【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/4/15 8:02:58

TensorFlow在畜牧健康监测中的声音识别

TensorFlow在畜牧健康监测中的声音识别 在现代化养殖场里,一头猪的咳嗽声可能比体温计更能预示一场潜在的疫情。传统养殖依赖人工巡检,饲养员凭经验判断牲畜状态,但人耳难以捕捉细微变化,夜间巡查又受限于安全与效率。如今&#x…

作者头像 李华
网站建设 2026/4/15 7:14:38

从零理解Open-AutoGLM,掌握下一代AI自动推理系统的底层逻辑

第一章:Open-AutoGLM的底层技术Open-AutoGLM 是一个基于开源大语言模型(LLM)与自动生成逻辑模块(GLM)深度融合的智能推理框架,其核心在于实现自然语言理解与结构化任务执行之间的无缝衔接。该系统依托于先进…

作者头像 李华
网站建设 2026/4/15 9:38:14

Open-AutoGLM在mac上部署失败?90%的人都忽略了这7个关键点

第一章:Open-AutoGLM在macOS部署的现状与挑战Open-AutoGLM作为新兴的开源自动代码生成模型,其在macOS平台上的本地化部署正受到开发者广泛关注。尽管苹果芯片(如M1/M2系列)在算力和能效方面具备优势,但受限于生态兼容性…

作者头像 李华
网站建设 2026/4/15 17:56:32

【Mac用户必看】:3天内掌握Open-AutoGLM本地化部署核心技术

第一章:Mac用户必看:Open-AutoGLM本地化部署全景解析对于追求高效本地大模型推理与自动化任务处理的Mac用户,Open-AutoGLM 提供了一套轻量级、可定制的解决方案。该框架结合了 GLM 系列模型的强大语义理解能力与自动化流程引擎,支…

作者头像 李华
网站建设 2026/4/15 0:56:24

从零配置到生产上线:vLLM启用Open-AutoGLM的全流程拆解

第一章:从零开始理解vLLM与Open-AutoGLM集成架构在构建高效、可扩展的大语言模型推理系统时,vLLM 与 Open-AutoGLM 的集成提供了一种高性能的解决方案。vLLM 是一个专注于大规模语言模型推理加速的框架,通过 PagedAttention 技术显著提升了显…

作者头像 李华