`

C#的类型转换

 
阅读更多

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// 1.C# 的隐式和显式转换
///2.C# 通过 Method 进行类型转换
///3.C# 的装箱拆箱和 Nullable 类型
/// </summary>
namespace lesson5
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 10;
            long l = i;//这里是一个隐式转化 一般是从小的数据类型到大
            //或者一个子类到基类
            C1 c1 = new C2();
            //显式转化则相反 数据可能会丢失
            double d = 10.05;
            int iFromD = (int)d;//简单的显式转化

            C1 c11 = new C1();
            try {
                C2 c2 = (C2)c11;
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }//异常处理程序
            Console.WriteLine(c11 is C1);
            Console.WriteLine(c11 is C2);

            C2 c22 = c11 as C2;//这里先做了强制转换,然后发现不能就赋值  null, 适用于 非空 和 引用类型
            //对比异常抛出机制不消耗资源
            Console.WriteLine(c22 == null);

            //int iAs="5" as int;
            int i2 = 1;
            string sFromi = i2.ToString();//通过方法进行转换
            //如果想要string转换int 则需要调用Convert这个类
            int iFroms = Convert.ToInt32("100");
            int iFroms2 = Int32.Parse("101");
            //为了避免处理这种输入格式不对的异常,常用
            int iFroms3;
            bool succeed = Int32.TryParse("iloveunity", out iFroms3);
            Console.WriteLine(iFroms3);//没成功输出0
            //继承IConventible ,TypeConventer实现自己类型的转换

            //装箱和拆箱 装箱时将值类型转变为一个引用类型 拆箱则相反
            int iToBoxing = 100;
            object iboxed = iToBoxing;//装箱就是一个隐式转换
            int iUnboxing = (int)iboxed;//显示转换就是一个拆箱 ,可能会有数据丢失,出错
            object NullObject = null;

            // int iNull = (int)NullObject; 这里有一个报错
            //较为消耗资源
            int? iNullable = 100;
            System.Nullable<int> inullable2 = 100;
            //上面两句话完全等价
            Console.WriteLine(iNullable.Value);
            iNullable = null;
            Console.WriteLine(iNullable.HasValue);
            Console.WriteLine(iNullable.GetValueOrDefault());//为空返回0
            Console.WriteLine(inullable2.GetValueOrDefault());
            int iii = iNullable ?? 500;//如果iNullable为空 赋值iii为后面数值 不为空前面
            Console.WriteLine(iFromD);
            Console.ReadLine();
        }
    }
    class C1 { }

    class C2 : C1 { }
}

分享到:
评论

相关推荐

    C#类型转换之初级篇

    ### C#类型转换之初级篇 #### 类型转换概述 类型转换是编程中常见的操作之一,尤其是在使用静态类型语言如C#时。类型转换是指在程序执行过程中改变一个变量的数据类型的处理过程。C#提供了多种类型转换的方式,...

    C++和C#的类型转换

    C++和C#的类型转换 C++和C#是两种非常流行的编程语言,它们分别应用于不同的领域。C++是一种通用的编程语言,广泛应用于操作系统、游戏开发、嵌入式系统等领域,而C#是一种现代的、面向对象的编程语言,广泛应用于...

    C#类型转换

    ### C#类型转换详解 #### 一、概述 在C#中,类型转换是一项非常重要的功能,它允许我们在不同数据类型之间进行灵活的变换。本文将深入探讨C#中的类型转换,包括装箱与拆箱、数值类型间的转换、字符编码、字符串与...

    一个C#类型转换类

    一个C#类型转换类,如:字符串转int、字符串转时间等,可自己再扩展

    C#类型转换,汉字和Email判断

    ### C#类型转换 在C#编程语言中,类型转换是一项非常重要的技能,它能够帮助开发者灵活地处理不同数据类型之间的转换。本文将基于提供的代码片段来深入探讨C#中的几种常见类型转换方法,以及如何进行汉字和Email的...

    常用类型转换扩展_C#_扩展_类型转换_

    在C#编程中,类型转换是开发者经常遇到的操作,它涉及到不同数据类型的相互转化。本文将深入探讨C#中常见的类型转换扩展,并介绍如何通过扩展方法来增强类型转换的便捷性和可读性。 首先,我们要了解C#内置的类型...

    C# 的类型转换.doc

    【C# 类型转换详解】 在C#编程中,类型转换是常见的操作,涉及到不同数据类型之间的转换。本文将深入探讨C#中的装箱、拆箱、别名、数值类型转换、字符编码转换、字符串与数值及数组之间的转换,以及日期型数据的...

    《C#中的类型转换》

    以下是一些常见的C#类型及其别名: - bool -&gt; System.Boolean - char -&gt; System.Char - byte -&gt; System.Byte - sbyte -&gt; System.SByte - ushort -&gt; System.UInt16 - uint -&gt; System.UInt32 - ulong -&gt; System.UInt...

    C++到C#数据类型转换

    C++ 到 C# 数据类型转换 在软件开发中,数据类型转换是一个非常重要的步骤,特别是在使用不同的编程语言时。C++ 和 C# 是两种非常流行的编程语言,它们之间的数据类型转换是非常必要的。本文将详细介绍 C++ 到 C# ...

    C#强制类型转换

    C# 强制类型转换 C# 强制类型转换是指在 C# 编程语言中将一种数据类型转换为另一种数据类型的过程。这种转换可以是隐式的,也可以是显式的。在 C# 中,强制类型转换是通过使用关键字 `(int)` 实现的,而不是使用 `...

    详解c# 类型转换

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

    c# 类型转换

    CLR允许将一个对象转换为它的实际类型,或者它的基类型。... c#中is as的操作符用法 在c#语言中,进行类型转换的另一个方式是使用is as操作符。 is:检查对象是否兼容指定对象,返回bool类型。 例: object o = new ob

    C#基础类型转换归纳

    归纳了C# 中一些类型转换方式,并做了相应解析,很完整,很详细

    C# 通用类型转换方法

    在程序开发过程中经常需要进行数据的类型转换,而且如果一个字段的类型改成另一个类型时,所有相关的类型转换的地方都要跟着修改,不但造成了很多重复转换的代码而且修改字段类型时额外修改相关转换代码的工作量也很...

    C#数据类型转换

    ### C# 数据类型转换 在 C# 编程语言中,数据类型转换是一项非常重要的功能,它可以帮助开发者灵活地处理不同类型的数据。数据类型转换主要包括数值与字符串之间的转换,这一点在日常开发工作中尤为常见。 #### ...

    C#数据类型转换问题集锦

    C# 数据类型转换问题集锦 C# 数据类型转换是一个非常重要的概念,掌握好数据类型转换对于编程开发非常重要。本文将会对 C# 中的数据类型转换进行总结和分析,并提供了一些实用的代码示例。 在 C# 中,数据类型可以...

    c#中的类型转换详解

    C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,在学习中整理了一份在这里与大家分享,很适用哦! 其内容涉及 C# 的装箱/拆箱/别名、数值类型间相互转换、字符的 ASCII 码和 Unicode 码、...

    TypeScriptBuilder:将C#类型转换为TypeScript类型定义

    这个小库基于C#类型生成TypeScript类型定义。 直接在您的后端C#项目中使用它来为您的前端TypeScript项目生成代码。 您还可以编写小型控制台应用程序,以通过预构建工具生成代码。 适用于Full&NET Core框架! ...

    C# 与 C++ 数据类型比较及结构体转换

    在进行C#与C++之间的数据类型转换时,通常需要考虑以下几种情况: 1. **基本数据类型**:例如整型、浮点型等。 2. **指针与引用**:在C++中广泛使用的指针类型,在C#中主要通过引用(`ref`)或原生指针(`IntPtr`)...

Global site tag (gtag.js) - Google Analytics