当前位置: 首页 > news >正文

C# 类型转换

类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:

  • 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
  • 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

下面的实例显示了一个显式的类型转换:

namespace TypeConversionApplication
{
    class ExplicitConversion
    {
        static void Main(string[] args)
        {
            double d = 5673.74;
            int i;

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

当上面的代码被编译和执行时,它会产生下列结果:

5673

C# 类型转换方法

C# 提供了下列内置的类型转换方法:

序号方法 & 描述
1ToBoolean
如果可能的话,把类型转换为布尔型。
2ToByte
把类型转换为字节类型。
3ToChar
如果可能的话,把类型转换为单个 Unicode 字符类型。
4ToDateTime
把类型(整数或字符串类型)转换为 日期-时间 结构。
5ToDecimal
把浮点型或整数类型转换为十进制类型。
6ToDouble
把类型转换为双精度浮点型。
7ToInt16
把类型转换为 16 位整数类型。
8ToInt32
把类型转换为 32 位整数类型。
9ToInt64
把类型转换为 64 位整数类型。
10ToSbyte
把类型转换为有符号字节类型。
11ToSingle
把类型转换为小浮点数类型。
12ToString
把类型转换为字符串类型。
13ToType
把类型转换为指定类型。
14ToUInt16
把类型转换为 16 位无符号整数类型。
15ToUInt32
把类型转换为 32 位无符号整数类型。
16ToUInt64
把类型转换为 64 位无符号整数类型。

下面的实例把不同值的类型转换为字符串类型:

namespace TypeConversionApplication
{ 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(); } } }

当上面的代码被编译和执行时,它会产生下列结果:

75
53.005
2345.7652
True

笔记列表


  1.    Jennis

      jennistian@gmail.com

    隐式转换和显式转换

    隐式转换:C# 默认的以安全方式进行的转换。本质是从小存储容量数据类型自动转换为大存储容量数据类型,从派生类转换为基类。

    实例:

    namespace TypeConvertion
    {   class Class1
        {
    
    	}
    
    	class Class2 : Class1 //类Class2是类Class1的子类
    	{
    
    	}
    	class Program
    	{
    	    static void Main(string[] args)
    	    {
    	        int inum = 100;
    	        long lnum = inum; // 进行了隐式转换,将 int 型(数据范围小)数据转换为了 long 型(数据范围大)的数据
    	        Class1 c1 = new Class2(); // 这里也是隐式转换,将一个新建的 Class2 实例转换为了其基类 Class1 类型的实例 C1
    	    }
    	}
    }
    

    显式转换:通过用户使用预定义的函数显式完成的,显式转换需要强制转换运算符。

    转换类型的范围大小和从属关系和隐式转换相反。显式转换可能会导致数据出错,或者转换失败,甚至无法编译成功。

    实例:

    double dnum = 100.1;
    int ifromd = (int)dnum; //double类型显式转换转为int类型
    
    
    Class1 c11 = new Class1();
    Class2 c22 = c11 as Class2; //使用as进行显式转换
    Console.WriteLine(c22 is Class1);
    Console.WriteLine(c22 is Class2);
    

    运行结果:

    FALSE
    FALSE

转载于:https://www.cnblogs.com/lbonet/p/6523627.html

相关文章:

  • MonkeyRunner简介
  • 百度编辑器取消高度自动拉长
  • View的layout机制
  • 免费 cdn
  • 利用js和JQuery定义一个导航条菜单
  • storm1.0节点间消息传递过久分析及调优
  • java api 调用es集群(1.7版本)
  • SQL Server 中WITH (NOLOCK)浅析
  • shiro权限认证与授权
  • 时间处理的一些代码片段
  • 自动化-----saltstack基础技术
  • 排序算法(java版)
  • 初学ArcGIS API for JavaScript
  • 倒排列表求交集算法汇总
  • BZOJ 4195: [Noi2015]程序自动分析 [并查集 离散化 | 种类并查集WA]
  • [iOS]Core Data浅析一 -- 启用Core Data
  • __proto__ 和 prototype的关系
  • 【面试系列】之二:关于js原型
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript中的对象个人分享
  • PaddlePaddle-GitHub的正确打开姿势
  • Promise面试题,控制异步流程
  • Vue2.x学习三:事件处理生命周期钩子
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 为视图添加丝滑的水波纹
  • 一个项目push到多个远程Git仓库
  • 云大使推广中的常见热门问题
  • 《码出高效》学习笔记与书中错误记录
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (第61天)多租户架构(CDB/PDB)
  • (力扣)1314.矩阵区域和
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (已解决)什么是vue导航守卫
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • **PHP分步表单提交思路(分页表单提交)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET gRPC 和RESTful简单对比
  • .NET 依赖注入和配置系统
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .net反编译工具
  • .NET基础篇——反射的奥妙
  • @angular/cli项目构建--http(2)
  • @hook扩展分析
  • @RestController注解的使用
  • @WebService和@WebMethod注解的用法