Net Core教程

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

本文主要是介绍c#图解教程_第十六章_转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

转换


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

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

 

 

 

 

隐式转换和显式转换


隐式转换

 

 

 

显式转换和强制转换

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

 

 

溢出上下文检测

定义:检测某些数值类型转化的过程中是否有数据溢出可使用关键字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#图解教程_第十六章_转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!