首页 > 编程语言 >C#入门到精通读书笔记

C#入门到精通读书笔记

时间:2023-10-29 23:56:02浏览次数:29  
标签:入门 读书笔记 C# number try catch int WriteLine 字符串

一、C#编程基础
//using static System.Console 以简化代码
//Main方法中
int numberOfApples = 12;
decimal pricePerApple = 0.35M //C#中声明变量为十进制10使用decimal,并且在数字后加字母M
Console.WriteLine(
format:"{0} apples costs {1:C}", //使用编号的未知参数可以使得字符串中相应位置输出当前值
arg0: numberOfApples,
arg1: pricePerApple * numberOfApples);
Console.WriteLine($"{numberOfApples} apples costs {pricePerApple * numberOfApples:C}"); //使用$为前缀的字符串可以在变量或表达式名称两边使用花括号,从而输出变量或表达式在字符串相应位置的当前值
//1.使用@作为前缀的字符串,可以把字符串中的“格式字符串”定义为字符串进行输出
//即取消\在字符串中的转义作用,使其单纯的表示为一个‘\’符号
//2.使字符串按照编辑的原格式输出

OUT:12 apples costs _4.20

1.理解格式字符串
**可以在逗号或冒号后使用格式字符串对变量或表达式进行格式化**
1
PS.
N0格式的字符串:表示有千位分隔符且没有小数点的数字;
C格式:表示货币
X格式:十六进制计数法对值进行格式化
D格式:使用长日期格式的日期部分

//格式项的完整语法
{index [, alignment] [: formatString]}
{a,-5} //5个字符长度,且-5<0左对齐,反之,右对齐
//循环遍历参数值
foreach (string arg in args)
{
WriteLine(arg);
}
2.b=a++; 先将a的值赋给b,运算完成后,变量a自加一
b = ++a; 先a自加一,然后带着加一后的值去参与运算

3.TryParse方法或System.Convert方法
//使用TryParse方法转换输入字符串,避免异常
Write("How many eggs are there?");
int count;
string input = Console.ReadLine(); //用户输入字符串然后回车

if (int.TryParse(input, out count)) //转换输入字符串
//byte.TryParse将数字字符串转换为与之等效的byte,并返回一个指示转换是否成功得知,True/False
{
WriteLine($"There are {count} eggs.");
}
else
{
WriteLine("I could not parse the input.");
}

4.在转换类型时异常处理:将容易出错的代码封装到try块中、捕获所有异常、捕获特定异常
//使用TryParse方法转换输入字符串,避免异常
Write("How many eggs are there?");
string input = Console.ReadLine(); //用户输入字符串然后回车
try
{
int count = int.Parse(input); //转换输入字符串
WriteLine($"There are {count} eggs.");
}
catch (FormatException) //捕获特定异常
{
WriteLine("The input you entered is not a valid number format.");
}
catch (Exception ex) //先捕获所有异常,然后确定发生了那种类型的异常后,在前面加入捕获特定异常catch语句
{
WriteLine($"{ex.GetType()} says {ex.Message}");
}

5.C#输出乘法表
using static System.Console;

namespace WrittingFunctions
{
class Program
{
static void TimesTable(byte number)
{
WriteLine($"This is the {number} times table:");
for (int row = 1; row <=12; row++)
{
WriteLine($"{row} X {number} = {row * number}");
}
WriteLine();
}

static void RunTimesTable()
{
bool isNumber;
do
{
Write("Enter a number between 0 and 255:");

isNumber = byte.TryParse(ReadLine(), out byte number); //byte.TryParse将数字字符串转换为与之等效的byte,并返回一个指示转换是否成功得知,True/False
if (isNumber)
{
TimesTable(number);
}
else
{
WriteLine("You did not enter a valid number!");
}
}
while (isNumber);
}
static void Main(string[] args)
{
RunTimesTable();
}
}
}

注意do-while会一直循环,可以修改


6.数据类型转换
double dd = 3.1415;
int number = (int)dd; //强制显示类型转换
//int-->double 自动隐式类型转换
//double-->int 大转小,强制显示类型转换,需要在小的数据前加(double)(double为大的数据类型)
//整数*1.0可以将一个整数提升为double类型
Console.WriteLine("n1={0:0.000}", a); // :0.00为保留两位小数,小数点后有几个零就代表保留几位小数
7.try-catch异常捕获
异常捕获与作用域概念
使用异常捕获之前,要正常书写代码,在程序运行之后,把可能出现的代码行加入到try - catch中
语法上没有错误,在程序运行的过程中,由于某些原因出现了错误,程序不能正常的运行
哪行代码有可能报错,你就踹他一脚,经常性用try - catch来进行异常捕获
语法
try
{
可能会出现异常的代码;
}
catch
{
出现异常后要执行的代码;
}
作用域
变量的作用域就是指你能够使用到这个变量的范围
变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束
在这个范围内,我们可以访问并使用变量,超出这个范围就无法访问该变量

//异常捕获与作用域概念
//使用异常捕获之前,要正常书写代码,在程序运行之后,把可能出现的代码行加入到try - catch中
//语法上没有错误,在程序运行的过程中,由于某些原因出现了错误,程序不能正常的运行
//哪行代码有可能报错,你就踹他一脚,经常性用try - catch来进行异常捕获
//语法
//try
//{
// 可能会出现异常的代码;
//}
//catch
//{
// 出现异常后要执行的代码;
//}
//作用域
//变量的作用域就是指你能够使用到这个变量的范围
//变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束
//在这个范围内,我们可以访问并使用变量,超出这个范围就无法访问该变量

//number变量报错,因为变量的作用域
bool b = true;
int number = 0;//声明一个变量
Console.WriteLine("请输入一个数字:(按回车键结束)");
try
{
//赋值
number = Convert.ToInt32(Console.ReadLine());//如果这行代码出现异常,立即退出try语句,进入catch语句
//某行代码出现异常后,try里面剩下的语句都不会执行了
}
catch
{
Console.WriteLine("您输入的数据不规范!");
b = false;
}
//让代码满足某些条件去执行的话,使用bool类型
if (b)
{
//使用
//我们要执行下面这行代码,需要满足某些条件
Console.WriteLine(number * 2);
}

标签:入门,读书笔记,C#,number,try,catch,int,WriteLine,字符串
From: https://www.cnblogs.com/JIANGzihao0222/p/17796809.html

相关文章

  • Java项目报错java.lang.UnsupportedOperationException: null 处理
    编写好业务代码后运行项目时报错: 人都麻了!查看控制台信息sql语句,发现原本输出6条结果的,却只查出一条就报错了。查了一下关于:2023-10-29T23:08:23.431+08:00ERROR29156---[nio-8099-exec-1]o.a.c.c.C.[.[.[/].[dispatcherServlet]  :Servlet.service()forservlet......
  • Python 利用pymysql和openpyxl操作MySQL数据库并插入Excel数据
    1.需求分析本文将介绍如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中。2.环境准备在开始本文之前,请确保您已经安装好了以下环境:Python3.xPyMySQL库openpyxl库MySQL数据库3.连接MySQL数据库我们可以使用pymysql库来连接MySQL数据库......
  • 关于使用ChatGPT的API开发批量处理工具的总结
    关于使用ChatGPT的API开发批量处理工具的总结由于批量处理,输入和输出最好使用json格式,并在提示词中要求以相同格式返回;以便于工具的解析和处理;返回的结果中要求chatgpt,说明其详细的处理过程及原因,方便对提示词进行调优,否则,面对问题时,只能瞎猜;提示词中尽量说明什么情况要怎么做......
  • FreeSWITCH的moh使用笔记
    操作系统:CentOS7.6_x64FreeSWITCH版本:1.10.9之前写过FreeSWITCH安装的文章,今天整理下moh使用过程中遇到的问题及解决方案,并提供moh音频下载途径。FreeSWITCH安装的文章可参考如下链接:docker构建FreeSWITCH编译环境及打包使用docker构建可动态启动的FreeSWITCH实例CentOS7环......
  • MAC地址和IP地址都有什么作用?为什么有了MAC地址还需要IP地址?为什么有了IP地址还需要MA
    MAC地址和IP地址都有什么作用?MAC地址是数据链路层和物理层使用的地址,是写在网卡上的物理地址,用来定义网络设备的位置,不可变更。IP地址是网络层和以上各层使用的地址,是一种逻辑地址。IP地址用来区别网络上的计算机。为什么有了MAC地址还需要IP地址?如果我们只使用MAC地址进行寻址的......
  • YouTrack 中如何设置邮件通知
    在YouTrack中,默认是不会邮件通知的。你可以为你的账号设置邮件通知。设置的方法为单击用户属性,然后在弹出的小窗口中选择属性选项。设置邮件通知在通知Tab页面中,选择发送邮件的方式,默认这个选项是不选择的。用户可以为自己选择发送邮件的方式。我们这里选择的是HTML。下面就是......
  • calibre-web个人图书在线管理
    calibre注:图片来【本地图书管理:通过calibre-web打造个人在线书城_白毛偷二的博客-CSDN博客】https://blog.csdn.net/qq_39366927/article/details/123013413calibre官方下载地址:https://calibre-ebook.com/downloadlinuxserver/calibre-web:0.6.20-ls221/volume1/docker/c......
  • 2023CCPC桂林站游记
    2023CCPC桂林站游记Day0起爆器,启动!起爆器,启动!起爆器,启动!起爆器,启动!起爆器,启动!柚子÷真恶心。夜宴丁真,鉴定为玩柚子社玩的。和liuhangxin联机MC。看liuhangxin玩原神。看liuhangxin玩原神。看liuhangxin玩原神。看liuhangxin玩原神。看liuhangxin玩原......
  • 云游长江大桥,3DCAT实时云渲染助力打造沉浸化数字文旅平台
    南京长江大桥是中国第一座自主设计建造的双层公路铁路桥,也是世界上最早的双层公路铁路桥之一。它不仅是一座桥梁,更是一座历史文化的见证者和传承者。它见证了中国人民的智慧和奋斗,承载了中国社会的变迁和发展。如何让这座不可移动的文物活起来,让更多的人了解和感受它的历史价值......
  • watchfiles + importlib == automatical rerun
    uvicornhttps://www.uvicorn.org/settings/此ASGI为开发者模式提供了,代码更改,自动加载功能。此功能如何实现?依赖两个库:watchfilesimportlibDevelopment¶--reload-Enableauto-reload.Uvicornsupportstwoversionsofauto-reloadingbehaviorenabledbythisopt......