ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#图解教程_第十六章_转换

2021-08-18 19:04:12  阅读:145  来源: 互联网

标签:第十六章 转换 定义 c# Person int 类型 图解 装箱


 

 

转换


定义;转换是接受一个类型的值并使用它作为另一个类型的等价值过程

转换后的值和源值一样的,但其类型为目标类型。

 

 

 

 

隐式转换和显式转换


隐式转换

 

 

 

显式转换和强制转换

定义:高精度往低精度数据类型转换时,需要使用显式转换

 

 

溢出上下文检测

定义:检测某些数值类型转化的过程中是否有数据溢出可使用关键字checked

 

 

 

装箱和拆箱


装箱

定义:值类型转换为引用类型的操作称之为装箱,装箱的本质是创建副本

 

装箱的其实是在创建引用副本,任何类型都可被隐式的转换为Object类型(装箱)

 

 

拆箱

 定义:值类型转换为引用类型的操作称之为拆箱

PS:尝试将一个值拆成非原始类型时会抛出一个InvalidCastException异常:指定的转换无效

 

 

装箱和拆箱的意义:在使用非泛型的函数方法接受参数时,可以用Object类型通过装箱和拆箱操作获取到任意类型的参数

 

用户自定义转化


 

定义:为用户类和结构定义提供隐式和显示转换

 

 

class Person{
   public string Name;
   public int Age;

public Person(string name,int age)
{
    Name = name;
    Age = age;
}

public static implicit operator int(Person p)
{
        return p.Age;
}
public static implicit operator Person(int i)
{
        return new Person("Nemo",i);
}
class Program{
 static void Main(){
    Person bill = new Person("bill",25);
  }
  //把Person对象转换为Int
   int age = bill;
   Console.WriteLine($"Person Info :{bill.Name},{age}");
  
   //把int转化为Person对象
   Person anno = 35;
   Console.WriteLine($"Person Info {anno.Name} ,{anno.Age}")
}

//输出结果:
Person Info:bill,25
Person Info Nemo,35

 

is运算符


定义:用于检测类型之间是否可以相互转换,判断返回是一个bool值

 

 

 as运算符


定义:作用类似于强制转换运算符,只是它不抛出异常,如果转换失败,它返回null而不是抛出异常

as运算符语法

Expr as TargetType

 

标签:第十六章,转换,定义,c#,Person,int,类型,图解,装箱
来源: https://www.cnblogs.com/FrameCode/p/15158337.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有