C#学习之路-类型转换

news2024/11/15 5:52:41

类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。

C# 中的类型转换可以分为两种:隐式转换和显式转换。

隐式类型转换

隐式转换是指将一个较小范围的数据类型转换为较大范围的数据类型时,编译器会自动完成类型转换,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。

例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。将一个 byte 类型的变量赋值给 int 类型的变量,编译器会自动将 byte 类型转换为 int 类型,不需要显示转换。

byte b = 10;
int i = b; // 隐式转换,不需要显式转换

显式转换

显式类型转换,即强制类型转换。

显式转换是指将一个较大范围的数据类型转换为较小范围的数据类型时,或者将一个对象类型转换为另一个对象类型时,需要使用强制类型转换符号进行显示转换,强制转换会造成数据丢失。

例如,将一个 int 类型的变量赋值给 byte 类型的变量,需要显示转换。

int i = 10;
byte b = (byte)i; // 显式转换,需要使用强制类型转换符号
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TypeConversionApplication
{
    internal class ExplicitConversion
    {

        static void Main(string[] args)
        {
            double d = 56894.45;
            int i;

            // 强制转换double为int
            i = (int)d;
            Console.WriteLine(i);
            Console.ReadKey();
        }
    }
}

 C# 类型转换方法

 class StringConversion
    {
        static void Main(string[] args)
        {
            int i = 75;
            float f = 53.005f;
            double d = 2345.7652;
            bool b = true;

            Console.WriteLine(i.ToString());
            Console.WriteLine(f.ToString());
            Console.WriteLine(d.ToString());
            Console.WriteLine(b.ToString());
            Console.ReadKey();

        }
    }

 在进行类型转换时需要注意以下几点:

  • 隐式转换只能将较小范围的数据类型转换为较大范围的数据类型,不能将较大范围的数据类型转换为较小范围的数据类型;
  • 显式转换可能会导致数据丢失或精度降低,需要进行数据类型的兼容性检查;
  • 对于对象类型的转换,需要进行类型转换的兼容性检查和类型转换的安全性检查。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt生成pygame opengl实现旋转用图片填充的3d三角形

import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import *def draw_triangle():vertices ((0, 2, 0), # 顶点1(-2, -2, 0), # 顶点2(2, -2, 0) # 顶点3)tex_coords ((1, 2), # 顶点1的纹理坐标(1, 1), # 顶点2的纹理坐标(2, …

如何使用SU插件一键生成通道图

如何使用SU插件一键生成通道图 通道图有什么作用? 以材质ID为例,最大的作用就是在PS通过选择材质ID图上的颜色,将颜色区域转化为蒙版,进而可以调节颜色区域所对应的效果图区域,原理类似于PS自带的通道:而A…

css 3D Demo

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> <style> body{ /* 该属性必须在父或大于父的级别上添加,保证其子,孙等盒子可以以3D视角…

langchain调用chatGLM2纪实

一、科学上网要注意&#xff1a; 域名全代和全局代理&#xff08;网卡&#xff09;&#xff0c;都要打开。这样conda install特别快。 二、安装langchain 1、 conda install langchain 2、 conda install openai 注意&#xff1a; 使用pip install和conda install 是不同…

mysql如何运行 mysql 基本命令

一、 mysql如何运行 1. 成功安装mysql 点击进入–》如何安装 2. 确保mysql服务启动&#xff1a; 按下win&#xff0c;输入服务&#xff0c;然后找到mysql&#xff0c;启动服务&#xff1a; 3. 配置环境变量&#xff08;可跳过&#xff09; 点击进入–》如何配置环境变量…

SpringBoot项目出现Failed to configure a DataSource错误时解决方法

若在运行SpringBoot项目时&#xff0c;出现如下错误&#xff1a; Description:Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the…

1.前言和介绍

目录 前言1. 说在前面2. 介绍3. 拓展&#xff1a;vscode3.1 文件传输3.2 高效调试配置3.2.1 配置launch.json3.2.2 配置task.json3.2.3 配置settings.json3.2.4 配置c_cpp_properties.json 前言 从零学习算法部署-TensorRT篇 杜老师推出的 tensorRT从零起步高性能部署 课程&…

7、添加billboard小旗子

本节演示添加billboard小旗子&#xff0c;使用第四节click的例子&#xff0c;通过鼠标点击地图添加billboard添加小旗子。 1、修改鼠标点击事件mouseUp&#xff0c;在函数中创建BillboardCollection对象并添加到地图中。鼠标点击时获取鼠标位置&#xff0c;转换成经纬度然后添…

Mycat【Mycat分片技术(水平拆分-分表、ER表、全局表)】(五)-全面详解(学习总结---从入门到深化)

目录 Mycat分片技术_水平拆分-分表 Mycat分片技术_ER表 Mycat分片技术_全局表 Mycat分片技术_水平拆分-分表 前言 上面谈到垂直切分只是把表按模块划分到不同数据库&#xff0c;但没有解决单表大数据量的问题。 水平拆分 相对于垂直拆分&#xff0c;水平拆分不是将表做分…

宝塔 安装/使用Apollo(阿波罗)多环境部署-图文小白教程

官方安装教程手册&#xff1a;Apollo apollo&#xff08;阿波罗&#xff09;是一款可靠的分布式配置管理中心&#xff0c;诞生于携程框架研发部&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且具备规范的…

Android 视频直播提拉流 嵌入式硬件 流媒体开发详细内容

1 Linux 系统编程网络编程基础 2 Linux 网络编程流媒体服务器&#xff0c;客户端开发实践 3 Android流媒体客户端 FFmpeg OpenGL ES 开发实践 4 Android H.264 AAC 封装mp4开发实战 5 流媒体开发实战之Rtmp推流 6 流媒体开发实战之RTSP推流 7 流媒体开发实战之UDP 8 P2P点对点项…

BERT 论文精读与理解

1.论文题目 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 2.论文摘要 本文引入了一种名为 BERT 的新语言表示模型&#xff0c;它代表 Transformers 的双向编码器表示。与最近的语言表示模型&#xff08;Peters et al., 2018a&#xf…

【云原生】 一文了解Docker到底是什么?

目录 1.docker是什么&#xff1f; 2.为什么需要docker&#xff1f; 3.docker特点 4.docker架构 5.云计算中的服务包括三个层面 6.传统虚拟化架构 7.容器架构 8.docker系统架构 Docker 守护进程 Docker 客户端 Docker 仓库 Docker 对象 Images&#xff08;镜像&#xff09; Cont…

数据库基本操作及表的创建

目录标题 1.数据库基本操作创建数据库查询数据库使用数据库查询默认数据库编码方式查询默认数据库校验规则删除数据 2.表的基本操作创建一个包含所有类型的表 1.数据库基本操作 创建数据库 查询数据库 使用数据库 查询默认数据库编码方式 查询默认数据库校验规则 删除数据 2.表…

内存的五大分区

一些套话 一个由C/C编译的程序占用的内存分为以下几个部分&#xff1a;栈区&#xff0c;堆区&#xff0c;全局区&#xff08;静态区&#xff09;&#xff0c;文字常量区&#xff0c;代码区 在执行一个C/C 程序时&#xff0c;此程序拥有唯一的“内存四区”&#xff08;栈区&…

基于STM32的homeassistant(采用FreeRTOS操作系统)【第二章:采集DHT11数据上传服务器;接收服务器指令执行对应操作】

第一章链接 第二章开发环境 主控STM32F103C8T6WIFI模块ESP01S传感器模块DHT11温湿度传感器、LED灯开发语言C开发编译器KEIL组网方式WIFI服务器协议MQTT 本章要点 根据DHT11工作特性编写触发代码AT指令订阅服务器端口STM32中断接收挂起Usart协议信息标志位STM23任务过滤识别服…

102、基于STM32的智能投食智能鱼缸鱼塘养殖宠物喂食换水监控系统(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

单片机主芯片选择方案 方案一&#xff1a;AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元&a…

路径规划算法:基于闪电连接过程优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于闪电连接过程优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于闪电连接过程优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用…

知乎下线“匿名功能” :「谢邀,匿了」成为千古绝唱

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 就在6月底“亿欧网黄渊普实名举报知乎CEO周源”这件事引起了轩然大波&#xff0c;核心文章直指知乎的匿名功能。没想到7月初这么快知乎就下线了匿名功能。 昨天&#xff0c;知乎宣布将下线匿名功能…

【数据结构二叉树OJ系列】1、二叉树的前序遍历

目录 题述(力扣难度&#xff1a;中等)&#xff1a; 思路: 正确代码如下&#xff1a; 典型错误&#xff1a; 题述(力扣难度&#xff1a;中等)&#xff1a; 给你二叉树的根节点 root&#xff0c;返回它节点值的 前序 遍历 示例1&#xff1a; 示例2&#xff1a; 输入&#xff1…