C# 入门详解

本文详细介绍了C#中的表达式和语句,包括表达式的定义、分类,如VALUE、VARIABLE、NAMESPACE等,以及语句的作用、类型如声明语句、表达式语句和块语句。同时,讲解了变量作用域、选择语句(if、switch)、迭代语句(while、for、foreach)和跳转语句(break、continue、goto、return)。此外,还提到了空语句、标签语句以及多线程相关的lock语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表达式和语句

表达式的定义
各类表达式概览
语句的定义
语句详解

表达式是算法逻辑的最基本的(最小)单元,表达一定的算法意图
因为操作符具有优先级,所以表达式也就有了优先级

C#语言中表达式的分类
A VALUE。任何能得到值的运算(操作符和结果类型)
A VARIABLE 。每个变量都有联合类型 布尔类型表达式得到的就是bool类型的值
A NAMESPACE。
A TYPE typeof(int32)
A method group 比如console.writeline就是一个方法组
A null literal 空值
AN 匿名方法表达式
A property access 访问属性
A event access 访问事件
A indexer access 访问索引器
Nothing 度返回值为void的方法的调用

复合表达式的求值
注意操作符的优先级和同优先级操作符的运算方向
除了赋值操作符,一般都是从左向右的。

语句的定义:
作用:声明变量,赋值,调用函数,迭代循环,根据条件进行分支跳转

C#除了能让“顺利地”表达算法思想,还能通过条件判断、循环等方法控制程序逻辑的走向
语句由分号结尾,但由分号结尾的不一定都是语句。比如引用名称空间,或字段的声明publicstring Name;

所以,语句一定是出现在方法体中的,来判断即可。

语句详解:
三大类:标签语句(henshaochuxian);声明语句;嵌入式语句

声明语句:局部变量声明和局部常量声明
注意:int x = 100;
int x;
x=100;
不是一回事。上面是声明时追加了初始化器;下面是只声明,后面才赋值
常量声明并初始化之后不能在改变;所以常常在前面加上const。

表达式语句:语句表达式;
哪些表达式允许作为语句使用:调用表达式(Console.WriteLine);对象创建表达式(new Form());赋值语句;后置自增自减,前置自增自减表达式;

块语句:用于在只允许单个语句的上下文中编写多条语句
block:{statement-list可选}
由一个扩在大括号内的可选
块语句无论什么都会被编译器当成一条语句来对待;
(CTRL+右花括号键)来快速找到对应的{}体
块语句中可声明C#中的任何一类语句
借此说明一下变量的作用域:在一条块语句之前或之外声明的变量在块语句中是可以访问的,在块语句中声明的出了快语句就不能用了。

选择语句:(判断、分支)语句
if语句,switch语句(不包括任何浮点类型),try语句(用于捕捉在块的语句执行期间发生的各种异常)
平时把优化逻辑的过程叫做代码重构。
switch表达式的类型为:sbyte\byte\short\ushort\int\uint\long \ulong\bool\char\string\enum-type\或者是对应于以上类型的可控null类型。
CTRL+L剪切一整行
try -catch
try-finally
try-catch- finally(catch可有多个,但只会执行一个)
catch不加任何异常类型,抓的是通用异常;
catch(ArgumentNullException\FormatException\OverflowException) 捕捉特定异常类型
catch(Exception ex)除了异常的类型外,还可以添加异常标识符ex.message throw (ex); 对于异常谁调用谁处理

迭代语句:while do for foreach
while语句:按不同条件执行一个嵌入语句执行0次或多次
do语句:按不同条件执行一个嵌入语句一次或多次。
continue语句:将开始直接封闭它的while、do、for或foreach语句的一次新迭代。
break语句:将退出直接封闭它的switch、while、do、for或foreach语句。
for语句:常用于计数循环 可读性要比do语句和while语句强很多
TAB键可以在for语句中需要更改的地方跳转
for(;😉 {} 相当于 while(true)
foreach语句:用于枚举一个集合的元素(遍历),并对该集合中的每个元素执行一次相关的操作。
什么样的集合可以被遍历:数组Array,泛型List
所有实现了IENUMERABLE接口的数组就可以被迭代
迭代器:ENUMERATOR,下面是用迭代器迭代集合的方法。
在这里插入图片描述
第一次while语句已经执行完,迭代器为false了,如果不重置enumerator迭代器,下一个while执行也不会显示有值的。上图的结果是打印了两遍1-8.

跳转语句:(break;continue;只会对直接包含自己的那一层起作用)goto;return;throw
跳转语句将控制语句转到位置称为跳转语句的目标(target)
原则:尽早return,好处:立刻鉴别出在什么时候是有问题的且避免头重脚轻
在这里插入图片描述
对于返回类型是void类型的,不写return也会直接返回了。
在这里插入图片描述
在这里插入图片描述
如果返回类型不是void类型的,一定要保证return,像上面else中的return。如果不加else这个分支或者不再if后面加return编译不过去,因为存在不满足if的条件的情况时没有办法处理。
空语句:;
标签语句:hello:
checked/unchecked语句:
using语句
yield语句
lock语句(用于多线程)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值