C#类型转换与异常处理全解析

《类型转换》

//类型转换,把一个类型转成另外一个类型,c#分为显式转换和隐式转换,主要区分点在于

//需不需要程序员自己写代码进行转换(编译器是否自动转换),是否存储数据丢失问题

//1 隐式转换:编译器自动转换,不存在数据丢失场景,(例如值类型把小空间数赋值给大空间的变量,引用类型场景:把派生类对象赋值基类对象)

int a = 10;

double b = a;//编译器自动转换

Console.WriteLine(b);//数据没有丢失

//把派生类对象赋值基类对象

// new Cat(); 派生类对象

// Animal ani 基类变量

Animal ani = new Cat();//编译器自动转换

//隐式转换规则:

//1 值类型 小区间往大区间可以直接转换

//2引用类型 把子类对象赋值父类的对象

//3有符号不能往无符号类型转换。

//显示转换,需要程序员自己写转换代码 ,出现数据丢失的情况 也叫强制转换

//显示转换的语法:(要转换的类型)变量;(int)a

//as和is的区别?

/*

* as 1:先类型判断 在转换

* 2:转换失败为null

* 3:永远不会抛异常

* 4 不可使用在值类型

*

* is 1只有判断 如果写成: anil is Cat c格式(模式匹配) 也可以达到先判断再转换的功能

* 2:返回值为true或者false

* 3:永远不会抛异常

* 4 可以使用在任意类型

*/

//Convert()和Parse()

《递归算法》

//递归算法:函数或者方法 调用自己进行解决问题,核心思想就是把复杂的问题分解为更为简单的子问题,直到子问题简答到能够直接求解(循环结束条件)

//常用的案例 斐波那契数列

//0 1 1 2 5 8...

Console.WriteLine(Fei(5));

//封装斐波那契函数

static long Fei(long n)

{

if (n == 0) { return 0; }

if(n == 1) { return 1; }

return Fei(n-2) + Fei(n-1);

//n=5

/*Fei(3)+Fei(4)

* =Fei(1)+Fei(2)+Fei(2)+Fei(3)

* =1+0+1+0+1+Fei(1)+Fei(2)

* =4+0+1=5

*

*

*/

《try...catch》

//错误分为两种错误

//编译错误:语法错误,

//运行错误:没有红色的语法错误,知道运行时候才会把错误抛出来,数组越界,类型转换错误

//如果直接写的化,可能遇见输入不是一个数字,程序会报字符串格式错误的异常;

//如果输入的是超出整型的范围,报太大太小的异常

*Exception 异常基类

* FormatException格式不正确异常

* OverflowException超出范围异常

* DivideByZeroException除数为0异常

* IndexOutOfRangeException索引值越界异常

* NullReferenceException空引用的异常

* FileNotFoundException找不到文件的异常

*

*

*/

///装箱:把值类型转成引用类型的过程

//拆箱:把引用类型转成值类型的过程

相关推荐
apcipot_rain2 小时前
C++转Java日记(04)
java·开发语言·c++
云和数据.ChenGuang4 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
蜗牛一步步往上爬7 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
张张123y9 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶12 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing0312 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊12 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆67513 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩14 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
AI导出鸭PC端16 小时前
Perplexity批量导出没有PDF模式?AI导出鸭插件补上最后一块拼图
人工智能·pdf·c#·ai导出鸭