课程目录
- 第 1 章: 概述
- 第 2 章: C#入门基础语法知识 1
- 第 1 节: 基础知识
- 2-1-1: 程序语言是什么
- 2-1-2: 程序思维练习题
- 2-1-3: 开发环境搭建
- 2-1-4: 程序思维练习题
- 第 2 节: 第一个应用程序
- 2-2-1: VS 窗口介绍
- 2-2-2: 理解写代码这件事
- 2-2-3: 注释
- 2-2-4: 程序文件的基础结构
- 2-2-5: 控制台输入输出语句和学习建议
- 2-2-6: 输入输出练习题
- 第 3 节: 变量
- 2-3-1: 变量知识点
- 2-3-2: 变量练习题
- 第 4 节: 变量的本质
- 2-4-1: 变量的本质知识点
- 2-4-2: 变量的本质练习题
- 第 5 节: 变量的命名规范
- 2-5-1: 变量的命名规范知识点
- 2-5-2: 变量的命名规范练习题
- 第 6 节: 常量
- 2-6-1: 常量知识点
- 2-6-2: 常量练习题
- 第 7 节: 转义字符
- 2-7-1: 转义字符知识点
- 2-7-2: 转义字符练习题
- 第 8 节: 类型转换
- 2-8-1: 隐式转换知识点
- 2-8-2: 隐式转换练习题
- 2-8-3: 显示转换知识点
- 2-8-4: 显示转换练习题
- 第 9 节: 异常捕获
- 2-9-1: 异常捕获知识点
- 2-9-2: 异常捕获练习题
- 第 10 节: 运算符
- 2-10-1: 算数运算符知识点
- 2-10-2: 算数运算符练习题
- 2-10-3: 字符串拼接知识点
- 2-10-4: 字符串拼接练习题
- 2-10-5: 条件运算符知识点
- 2-10-6: 条件运算符练习题
- 2-10-7: 逻辑运算符知识点
- 2-10-8: 逻辑运算符练习题
- 2-10-9: 位运算符知识点
- 2-10-10: 位运算符练习题
- 2-10-11: 三目运算符知识点
- 2-10-12: 三目运算符练习题
- 第 11 节: 条件分支语句
- 2-11-1: if 语句知识点
- 2-11-2: if 语句练习题 1
- 2-11-3: if 语句练习题 2
- 2-11-4: switch 语句知识点
- 2-11-5: switch 语句练习题
- 第 12 节: 循环语句
- 2-12-1: while 循环知识点
- 2-12-2: while 循环练习题 1
- 2-12-3: while 循环练习题 2
- 2-12-4: do while 循环知识点
- 2-12-5: do while 循环练习题
- 2-12-6: for 循环知识点
- 2-12-7: for 循环练习题
第三章: 总结
实践项目目录
- 第 1 章: 必备知识点补充
- 1-1: 控制台相关知识点
- 1-2: 控制台相关练习题
- 1-3: 随机数知识点
- 1-4: 随机数练习题
- 1-5: 项目调试
- 第 2 章: C#入门实践项目
- 2-1: 需求分析
- 2-2: 控制台基础设置
- 2-3: 多个场景
- 2-4: 开始场景逻辑实现
- 2-5: 不变的红墙
- 2-6: boss 相关
- 2-7: 主角移动相关
- 2-8: 主角和 boss 战斗
- 2-9: 公主相关
- 2-10: 结束场景逻辑实现
- 第 3 章: C#入门实践总结
命名规范
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| int myName = 12; int yourName = 13; string myString = "我的字符串";
class MyArray{
}
int MyFunction (){
}
#region
#endregion
|
变量类型
1 字节=8 比特=8 位 例:1001 0100
类别 |
数据类型 |
位数 |
无符号 正整数集 |
ulong |
64 位 |
|
uint |
32 位 |
|
ushort |
16 位 |
|
byte |
8 位 |
有符号 整数集 |
long |
64 位 |
|
int |
32 位 |
|
short |
16 位 |
|
sbyte |
8 位 |
浮点数 小数 |
decimal |
128 位 |
|
double |
64 位 |
|
float |
32 位 |
特殊字符 字符串 |
string |
无位数限制 |
|
char |
16 位 |
|
bool |
8 位 |
声明常量 变量前加 const 关键字
1
| const float PI = 3.14159265f;
|
转义字符
1 2 3 4 5
|
Console.WriteLine("\"hello\""); Console.WriteLine(@"Go\go");
|
数据类型转换
隐式转换
小范围可以隐式转换大范围
1 2 3
| long i = 1; int i2 = 1; i = i2;
|
char 可以隐式转换成整数和浮点,转换结果为 ASCII 码。
显式转换
括号强转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
int i = 1; short s = 1; s = (short)i;
byte b = 1; uint ui = 1; b = (byte)ui;
float f = 18.789f; i = (int)f; Console.WriteLine(i);
|
Parse 法
字符串转对应类型
1 2 3 4 5 6 7 8 9
| string str1 = "123"; int i2 = int.Parse(str1); i2 += 100; Console.WriteLine(i2);
short s3 = (short)int.Parse("4000000"); Console.WriteLine(s3);
|
Convert 法
适用性强 什么都能转
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
int a = Convert.ToInt32("12"); string str2 = Convert.ToString(321);
a = Convert.ToInt32(3.6789f); Console.WriteLine(a);
float f1 = Convert.ToSingle("13.567");
Console.WriteLine(a);
|
其他类型转 String
拼接打印
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
string str3 = 9888.ToString(); Console.WriteLine(str3);
int a4 = 1 ; str3 = a4.ToString(); bool b1 = true; str3 = b1.ToString(); Console.WriteLine(str3);
Console.WriteLine("数字是:" + a4 + b1);
Console.WriteLine("数字是:" + a4.ToString() + b1.ToString());
|
异常捕获
1 2 3 4 5 6 7 8 9
| try { string str = Console.ReadLine(); int.Parse(str); } catch { Console.WriteLine("请输入合法数字"); }
|
运算符
自增运算符
逻辑运算符的短路规则
与:&& 有假则假 同真为真
或:|| 有真为真 同假为假
非:! 反转真假
运算优先级: ! > && > ||
i3 打印结果为 1
位运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #region 知识点一 位与 & int a = 1; int b = 5; int c = a & b; Console.WriteLine(c); #endregion
#region 知识点二 位或 |
a = 1; b = 3; c = a | b; Console.WriteLine(c); #endregion
#region 知识点三 异或 ^ a = 1; b = 5; c = a ^ b; Console.WriteLine(c); #endregion
#region 知识点四 位取反 ~ a = 5; c = ~a; Console.WriteLine(c); #endregion
#region 知识点五 左移<< 和 右移>> a = 5; c = a << 5; Console.WriteLine(c); #endregion
|
三目运算符
可以实现简单的逻辑运算 if 和 else
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #region 知识点一 基本语法
#endregion
#region 知识点二 具体使用 string str = false ? "条件为真" : "条件为假"; Console.WriteLine(str);
int a = 5; str = a < 1 ? "a小于1" : "a不满条件"; Console.WriteLine(str);
int i = a > 1 ? 123 : 234;
bool b = a > 1 ? a > 6 : !false; #endregion
|
分支语句
If
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| if (bool值) { 如果为真则执行此语句块的代码 }
if (bool值) { 如果为真则执行此语句块的代码 } else (bool值) { 否则执行此段语句块代码 }
if (bool值) { 如果为真则执行此语句块的代码 } else if (bool值) { 否则执行此段语句块代码 } else if (bool值) { 否则执行此段语句块代码 }
else (bool值) { 否则执行此段语句块代码 }
if (bool值) { if(bool值) {
} else if (bool值) {
}
} else if (bool值) {
}
|
Switch
用于枚举
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| switch (变量) { case 常量: 满足条件所执行的代码 break;
case 常量: 满足条件所执行的代码 break;
case 常量: 满足条件所执行的代码 break;
default: 如果上面的条件都不满足 就会执行default break; }
switch (变量) { case 常量1: case 常量2: 满足条件所执行的代码 break;
default: 如果上面的条件都不满足 就会执行default break; }
int a = 0; switch { case 1: Console.WriteLine("a为1") break;
case 2: Console.WriteLine("a为2") break;
case 3: Console.WriteLine("a为3") break;
default: Console.WriteLine("a不满足条件") break; }
|
循环语句
For 循环
使用较多
1 2 3 4 5 6 7 8 9 10 11 12
| for(int i = 0; i < 10; ++i) { Console.WriteLine(i); }
for(;;) { Console.WriteLine("你好"); }
|
While 循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| while(bool值) { 满足条件时就会执行该语句块 执行玩会回到while开头再次判断 }
int i = 0 ; while(i < 10) { ++i; }
|
do while 循环
用的比较少
1 2 3 4 5
| do { 判断条件在后面 所以先执行一次本语句块代码再做判断
}while(bool值);
|
break:跳出循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| while(true) { Console.WriteLine("break之前的代码"); break; Console.WriteLine("break之后的代码 不会被执行"); } Console.WriteLine("循环外的代码");
int i = 0 ; while(true) { ++i; if(i == 10) { break; } }
|
continue:回到循环开始
1 2 3 4 5 6 7 8
| int i = 0 ; while(true) { Console.WriteLine("continue之前的代码"); continue; Console.WriteLine("continue之后的代码不会执行"); } Console.WriteLine("循环外的代码不会执行");
|
补充内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| char c = Console.ReadKey().KeyChar;
char c = Console.ReadKey(true).KeyChar;
Console.Clear();
Console.SetCursorPosition(10,5);
Console.ForegroundColor = ConsoleColor.Red;
Console.BackgroundColor = ConsoleColor.White;
Console.Clear();
Console.CursorVisible = false;
Environment.Exit(0);
|