24.C#入门语法知识总结
发布时间 :
字数:1.7k
阅读 :
24.总结
24.1 知识点

学习的主要内容

总结讲什么

为什么要讲练结合

如何培养良好的学习习惯

如何快速的提升编程能力

24.2 核心要点速览
输入输出操作
API |
说明 |
Console.WriteLine |
输出文本并换行,支持占位符,示例:Console.WriteLine("{0}", value) 。 |
Console.Write |
输出文本但不换行。 |
Console.ReadLine |
读取一行用户输入,以回车结束输入,返回字符串类型结果。 |
Console.ReadKey |
读取单个按键,返回 ConsoleKeyInfo 对象,可用于捕获键盘事件,按下任意键即认为输入结束。 |
代码分组
#region 分组名称
// 分组代码
#endregion
通过 #region
和 #endregion
可将代码分组,提高代码的可读性与逻辑性,此为编辑器提供的预处理指令,编译时会被忽略。
基础变量类型
分类 |
类型 |
默认值 |
有符号整型 |
sbyte (8 位)、short (16 位)、int (32 位)、long (64 位) |
0 |
无符号整型 |
byte (8 位)、ushort (16 位)、uint (32 位)、ulong (64 位) |
0 |
浮点数 |
float (单精度)、double (双精度)、decimal (高精度) |
0.0 |
布尔/字符 |
bool (true /false )、char (单字符,如 'A' ) |
false /'\0' |
字符串 |
string (引用类型,不可变) |
null |
获取变量类型所占内存空间
可使用 sizeof(变量类型)
方法获取变量类型在内存中所占的字节数。例如:
int intSize = sizeof(int);
Console.WriteLine($"int 类型所占字节数: {intSize}");
常量
- 声明:使用
const
关键字,语法为 const 类型 名称 = 值;
,示例:const float PI = 3.14f;
。
- 特性:常量是编译时常量,声明时必须初始化,且在程序运行过程中不可修改。
转义字符
符号 |
含义 |
应用场景 |
\' |
单引号 |
当字符串中需要包含单引号时使用,如 'Hello' 。 |
\" |
双引号 |
当字符串中需要包含双引号时使用,如 "World" 。 |
\n |
换行符 |
用于实现文本换行,示例:str = "Line1\nLine2" 。 |
\\ |
反斜杠 |
在表示文件路径等需要使用反斜杠的场景中使用,如 C:\\Folder\\File.txt 。 |
\t |
制表符(Tab) |
用于文本对齐,示例:Name\tAge 。 |
\b |
退格符 |
使光标回退一格,示例:12\b3 输出 13 。 |
\a |
警报音 |
触发系统提示音,使用时需谨慎。 |
类型转换
隐式转换规则
遵循大范围容纳小范围的原则:double → float → 整数(无符号/有符号) → char
;decimal → 整数 → char
。string
和 bool
类型不参与隐式转换。
显式转换
方法 |
说明 |
(类型) 值 |
括号强转,示例:(int)3.14 ,需注意可能会出现精度丢失或范围溢出问题。 |
变量类型.Parse("字符串") |
将字符串转换为对应的变量类型,若转换失败会抛出异常。 |
Convert.To目标类型(变量或常量) |
可将任意类型转换为目标类型。 |
ToString() |
将对象转换为字符串类型,可通过重写来自定义转换逻辑。 |
异常捕获
块 |
说明 |
是否必需 |
try |
包含可能会抛出异常的代码。 |
是 |
catch |
捕获异常,可通过指定 Exception e 来获取详细的错误信息,至少需要一个 catch 块。 |
是 |
finally |
无论是否发生异常,该块中的代码最终都会执行,常用于释放资源。 |
否 |
示例代码: |
|
|
try
{
// 可能抛出异常的代码
}
catch (Exception e)
{
// 处理异常
Console.WriteLine($"异常信息: {e.Message}");
}
finally
{
// 清理资源
}
运算符
类型 |
运算符 |
说明 |
优先级(从高到低) |
算术运算符 |
+ - * / % |
分别用于加减乘除和取余运算,示例:7 % 3 = 1 ,整数除法 5 / 2 = 2 。 |
* / % > + - |
关系运算符 |
> < >= <= == != |
比较操作,结果为 bool 类型,示例:3 > 2 结果为 true ,"a" != "b" 结果为 true 。 |
高于逻辑运算符(除 ! 外) |
逻辑运算符 |
! && || |
逻辑非、与、或运算,具有短路特性:&& 运算符若左边为 false 则右边不执行;|| 运算符若左边为 true 则右边不执行。 |
! > && > || |
位运算符 |
& | ^ ~ << >> |
对数值进行位运算,示例:5 << 1 = 10 ,5 & 3 = 1 ,~5 = -6 。 |
高于逻辑运算符(仅 ! 例外) |
三目运算符 |
条件 ? 表达式1 : 表达式2 |
根据 bool 条件判断,若条件为 true 则返回表达式 1,否则返回表达式 2,示例:a > b ? a : b 。 |
低于赋值运算符 |
字符串拼接
类型 |
方法/语法 |
说明 |
示例 |
运算符拼接 |
+ / += |
直接使用 + 进行字符串拼接,支持将非字符串类型(如数字、布尔值)自动转换为字符串。复合运算符 += 等价于 str = str + value 。 |
string str = "Hello" + "World"; str += 123; 结果为 "HelloWorld123" 。 |
格式化拼接 |
string.Format("模板", 参数1, 参数2) |
使用 {数字} 作为占位符定义模板,按顺序填充参数,支持类型自动转换。 |
string result = string.Format("我是{0},今年{1}岁", "小明", 18); 结果为 "我是小明,今年18岁" 。 |
控制台拼接 |
Console.WriteLine("模板", 参数1, 参数2) |
本质是 WriteLine 方法的重载,语法与 string.Format 相同,直接输出拼接结果。注意:参数数量必须大于等于占位符数量,否则会报错。 |
Console.WriteLine("A{0}B{1}", true, 123); 输出 "ATrueB123" 。 |
流程控制
条件分支
语句 |
语法 |
特点 |
if |
if (条件) { 代码块 } |
单分支结构,当条件为 true 时执行代码块。 |
if...else |
if (条件) { 代码块1 } else { 代码块2 } |
双分支结构,若条件为 false 则执行 else 后的代码块。 |
switch |
switch (变量) { case 常量: 代码块; break; } |
多分支结构,每个 case 语句后需要使用 break 语句跳出(支持贯穿)。 |
循环
语句 |
语法 |
执行顺序 |
while |
while (条件) { 循环体 } |
先判断条件,条件为 true 时执行循环体,可能一次都不执行。 |
do...while |
do { 循环体 } while (条件); |
先执行一次循环体,再判断条件,至少执行一次循环体。 |
for |
for (初始; 条件; 增量) { 循环体 } |
适用于已知循环次数的场景,按初始、条件判断、执行循环体、增量的顺序执行。 |
控制关键字
关键字 |
作用 |
适用场景 |
break |
跳出当前循环或 switch 语句 |
用于提前终止循环或 switch 流程。 |
continue |
跳过本次循环的后续代码,直接进入下一次循环 |
忽略本次循环剩余代码,开始下一次循环。 |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com