今天我们就开始正式进入C#的入门学习,从最简单的基础开始切入,总结内容都非常的细节,但也没有全部概况进去,大家可以根据自己情况选择查看,如有错处,欢迎指正~
目录
VS中常用的快捷键
代码中出现的波浪线提示
C#的三种注释符和Region、EndRegion
变量
C#中, +号的作用
占位符
异常捕获与处理
转义符
类型转换:
基础代码示例
Ctrl+K+D: 快速对齐代码(代码出现语法错误的时候,无法对齐)
Ctrl+J: 快速弹出智能提示
Shift+End: 光标在行首时,快速选中当前行
Shift+Home:光标在行尾时,快速选中当前行
Ctrl+K+C: 注释所选代码
Ctrl+K+U: 取消对所选代码的注释
Ctrl+M+O: 折叠所有的方法
Ctrl+M+P: 展开折叠的所有方法
F1:转到帮助文档,VS的帮助文档非常的强大,可以安装一个经常查看
1. 红色波浪线,表明有语法错误;
2. 绿色波浪线,警告线,没有语法错误,但是可能会出现错误;例如有未使用的变量定义;
1. 单行注释符://
2.多行注释:/*要注释的内容*/
3.文档注释:///多用来解释类或者方法
4. #Region 和 #EndRegion:#Region 需要折叠的冗余代码 #EndRegion
代码展示(3,4)
计算机当中存储数据需要在内存中开辟一块空间,每个空间都会分配一个地址,地址不方便识别,这时就用变量来指向内存给我们开辟的这块空间,便于识别,因此可以理解变量其实是我们在计算机当中存储数据的一个标识;
******首先要保证取的变量有意义,其次要遵循变量的命名规范,无意义的变量名都是扯淡******
变量的命名规则
1. 必须以字母、下划线或@符号开头,不能以数字开头
2.开头后面则可以跟任意“字母”、数字、下划线
3.不能与C#系统中的关键字重复
4. 在C#中,大小写是区分大小写的,即大写和小写表示不同的变量
变量的两种命名规范
1.Camel 骆驼命名规范,要求变量名首单词字母要小写,其余每个单词的首字母要大写
--用于本地变量和方法参数,例如calResult;
2.Pascal 命名规范:要求每个单词的首字母都要大写,其余字母小写;
--用于给类或者方法命名,例如FirstDemo
变量的几种类型
short: 16位有符号整数,-~-1
ushort: 16位无符号整数,0~-1
int :32位有符号整数,-~
uint:32位无符号整数,0~
long :64位有符号整数,-~
float: 精确到7位,~
double:精确到15~16位,~
char:存储单个字符,使用单引号‘’,不能存空
string:用来存储多个文本,使用双引号"",可以存空
decimal: 主要用来存储钱这种类型的,值结尾加m,精确到28~29位
变量的作用域
变量的作用域就是你能够使用到这个变量的范围;一般从声明它的那个括号开始到那个括号所对应的结束的括号结束;在这个范围内,我们可以访问并使用变量,超出这个范围就访问不到了;
1. 连接:当+号两边有一边是字符串的时候,+号起连接作用
2. 相加:当两边都是数字的时候,+号起相加的作用
使用方法: 先占位,再补位; {0}去占位,“,”以后再去补位
1. 占几个位,就应该补几个位,多补,没效果,语法不报错,能正常运行; 少补语法也不报错,但会抛异常;
2. 输出顺序,占位符按照占位的顺序输出;
3. 占位还可以使用特定格式来约束小数位,例如保留小数点后两位的输出方式{0:0.00},d)
概念
前面占位符第一点提到少补位时程序会抛异常,那么什么是异常呢?
异常就是指语法上并没有任何错误,但是程序在运行期间,由于某些原因出现了问题,使程序不能再正常运行。
捕获异常
我们使用try--catch来捕获异常
哪行代码可能会出现异常,就try一下;
try
{
可能会出现异常的代码;
}
catch
{
出现异常后要执行的代码;
}
执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。
如果try中的代码出现了 异常,就算这行出现异常的代码后面还有一百行代码也都不会执行;
而是直接跳到catch中执行代码。
注意:try 和 catch之间不能有其他代码,并且最好是在一个模块代码写完了以后再来看全局的代码,哪些地方需要用try catch;
是指一个‘\’ + 一个特殊的字符,组成了一个具有特殊意义的字符
\n : 换行,控制台可以识别,windows不识别,苹果系统可以识别
\r\n: windows 操作系统可识别的换行
\": 表示英文半角的双引号
\t: 一个tab键
\b:一个退格键, 放在字符串的两端没有效果
\\: 表示一个\
@符号:取消\在字符串中的转义作用,使其单纯的表示一个'\'
隐式类型转换(自动类型转换)
满足以下两个条件的就是隐式类型的转换,它是自动完成的,无需额外加代码
1. 两种类型兼容,例如 int 和 double 兼容(都是数字类型)
2. 目标类型大于源类型,例如 double >int , 即小的转大的
显示类型转换(强制转换)
满足一下两个条件就可以去做强制转换,在前面加上要转换的类型
1. 两种类型兼容 int---double
2. 目标类型小于源类型 double 转int, 即大的转小的; (int)
注意:对于表达式的转换结果
整数类型的运算结果一定是整数,就算赋值过去的是一个double类型的值,需要得到一个double类型的值,则表达式内的其中一个操作数一定要被提升为double类型的;
convert 转换
适用于类型不兼容,例如string 转 int ;
前提:string转int,也要面上看起来能够转换,例如“123”可转,“123sb”就不能转,就会抛异常;
对于以上的基础,我们拿一个代码例子来演示一番:
static void Main(string[] args) { string[] strNumber; //使用@取消路径中的\的转义意义,如下,直接使用'\'就不会报错 string Path = @"C:\Program Files\Microsoft Visual Studio 10.0\Common7\Packages"; //+号拼接字符串 Console.WriteLine("请输入两个需要整数,以分号隔开," + "系统将返回给你较大的那个值\n" + "同时用两种方式进行做除,输出结果5;"); //读取用户的输入 string strRead = Console.ReadLine(); //字符串的分割,将用户输入存入数组 strNumber = strRead.Split(';'); //对convert的异常使用try catch 进行异常捕获 try { //string转int int number1 = Convert.ToInt32(strNumber[0]); int number2 = Convert.ToInt32(strNumber[1]); int output = BasicDemo.GetMax(number1, number2); Console.WriteLine("您输入的两个值分别是{0},{1},数值{2}更大", number1, number2, output); if (number2 != 0) { //该结果会取整 double result1 = number1 / number2; //如下式子才是真正的结果 double result2 = number1 * 1.0 / number2; //使用占位符的取小数位数 Console.WriteLine("您输入的数字除法结果有两种:\n{0}/{1} = {2:0.00};{3}/{4} = {5:0.00}", number1, number2, result1, number1, number2, result2); } else { Console.WriteLine("您输入的第二个数字为0,无法计算做除法计算"); } } catch (Exception ex) { Console.WriteLine("您输入的数字不是整数,请重新输入整数,以分号隔开!"); strRead = Console.ReadLine(); strNumber = strRead.Split(';'); try { //string转int int number1 = Convert.ToInt32(strNumber[0]); int number2 = Convert.ToInt32(strNumber[1]); int output = BasicDemo.GetMax(number1, number2); Console.WriteLine("您输入的两个值分别是{0},{1},数值{2}更大", number1, number2, output); if (number2 != 0) { //该结果会取整 double result1 = number1 / number2; //如下式子才是真正的结果 double result2 = number1 * 1.0 / number2; //使用占位符的取小数位数 Console.WriteLine("您输入的数字除法结果有两种:\n{0}/{1} = {2:0.00};{3}/{4} = {5:0.00}", number1, number2, result1, number1, number2, result2); } else { Console.WriteLine("您输入的第二个数字为0,无法计算做除法计算"); } } catch (Exception e) { Console.WriteLine("您输入的数字不是整数,程序将退出!"); } } //使程序暂停 Console.ReadKey(); }
public static class BasicDemo { /// <summary> /// 输入两个整数值,返回一个较大的整数值 /// </summary> /// <param name="number1">整数值1</param> /// <param name="number2">整数值2</param> /// <returns>较大的整数值</returns> public static int GetMax(int number1, int number2) { int calResult = 0; if (number1>number2) { calResult = number1; } else { calResult = number2; } return calResult; } }
运行结果: