C#基础学习--转换

news/2024/11/25 2:49:33/

目录

什么是转换

隐式转换

显式转换和强制转换

​编辑

转换的类型

数字的转换

​编辑 隐式数字转换

溢出检测上下文

显式数字转换 

引用转换

 隐式引用转换

显式引用转换

有效显式引用转换

装箱转换

装箱是创建副本

装箱转换

拆箱转换

 用户自定义转换

用户自定义转换的约束

 is 运算符

 as 运算符


什么是转换

隐式转换

有些类型的转换不会丢失数据或精度。

显式转换和强制转换

如果使用强制类型转换,就意味着要承担执行操作可能引起的丢失数据的后果

转换的类型

数字的转换

 隐式数字转换

 没有路径的就是需要显式转换,有路径的就是可以隐式转换

溢出检测上下文

显式数字转换 

 虚线路径表示显式转换

引用转换

引用类型对象由内存中的两部分组成:引用和数据

 隐式引用转换

所有的引用类型可以隐式转换成object 类型

任何类型可以隐式转换到它继承的接口

类可以隐式转换到  :    他继承链中的任何类,它实现的任何接口

显式引用转换

显式引用转换是从一个普通类型到一个更精确类型的引用转换

显式转换包括:   从object到任何引用类型的转换      从基类到从它继承的类的转换

有效显式引用转换

装箱转换

包括值类型在内的所有C#类型都派生自 object 类型。默认情况下在堆上不包括它们的对象组件,如果需要对象组件,可以通过装箱。装箱是一种隐式转换,它接受值类型的值,根据这个值在堆上创建一个完整的引用类型对象并返回对象引用

装箱是创建副本

返回的是值的引用类型的副本,在装箱产生后,该值有两份副本--原始值类型和引用类型副本,每一个都可以独立操作

装箱转换

拆箱转换

拆箱是把装箱后的对象转换回值类型的过程

 用户自定义转换

用户自定义转换的约束

 多步转换:

 is 运算符

有些转换是不成功的,并且会在运行时抛出一个InvalidCastException异常,我们可以使用is运算符来检查转换是否会成功

Expr  是源表达式

 as 运算符

as 运算符和强制运算符类似,只是它不抛出异常,如果转换失败,它返回null 而不是抛出异常

 


http://www.ppmy.cn/news/43233.html

相关文章

【C++进阶】function和bind及可变模板参数

文章目录1. function和bind1.1 function使用方法1.2 bind2. 可变模板参数2.1 可变模板参数函数2.2 可变模板参数的展开1. function和bind C中的function和bind是为了更方便地进行函数对象的封装和调用而设计的。 function是一个通用的函数对象容器,可以存储任意可…

Wombat:93%ChatGPT性能!无需RLHF就能对齐人类的语言模型

文 | zzy文章地址: https://arxiv.org/abs/2304.05302v1训练代码:https://github.com/GanjinZero/RRHF模型权重:https://huggingface.co/GanjinZero/wombat-7b-delta文章提出RRHF一种无须强化学习的对齐方法训练语言模型。该文章利用chatGPT或者GPT-4作为…

CAN 发展史

一、起源 1986 年 2 月 Robert Bosch 公司在 SAE 汽车工程协会 大会上介绍了一种新型的串行总线 CAN控制器局域网,那是 CAN 诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有 CAN 局域网。同样,CAN也用于其他类型的交通工具,从火…

学会了selenium 模拟鼠标操作,你就可以偷懒点点点了

目录:导读 前言 01.ActionChains 类常用方法 02.ActionChains 类所有方法 03.ActionChains 使用步骤 04.实战 05.总结 前言 我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息。 这个…

CDH 之 Kerberos 安全认证和 Sentry 权限控制管理(一)

一、Kerberos 和 Sentry 概述 1.1 什么是 Kerberos Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,…

信息系统项目管理师-项目成本管理

1.过程 1.1 规划成本管理 确定如何估算、预算、管理、监督和控制项目成本的过程。 1.2 估算成本 对完成项目工作所需资源成本近似估算的过程。 1.3 制定预算 汇总所有单个活动或工作包的估算成本,建立一个经批准的成本基准的过程。 1.4 控制成本 监督项目状态&#…

FlowForge 使用教程 团队资源管理

前言 本篇文章结合FF的操作来给大家解释一下,FF在团队管理上都与那些资源可以操作。 团队创建 使用超管第一次登录FF平台,默认什么资源都没有,你只能先去创建一个团队才能继续往下操作。 在FF平台上,团队就代表一个租户,也是一种资源隔离的手段。 创建团队可以通过右上…

解决Android Studio测试报错Could not find method test() for arguments

文章目录问题描述解决办法笔者报错时的运行环境: Android Studio Electric Eel | 2022.1.1 Patch 2 Gradle 8.0.1 JDK 17 JUnit 5.9.2 或 TestNG 7.7.1 单元测试 问题描述 笔者在 Android Studio 界面内运行单元测试时,踩坑无数。 首先&#xff0…