程序的活动是通过语句(statement)来表达的C#支持几种不同的语句许多语句是以嵌入语句的形式定义的
块(block)允许在只能使用单个语句的上下文中编写多个语句块由一个括在大括号{}内的语句列表组成
声明语句(declaration statement)用于声明局部变量和常量
表达式语句(expression statement)用于运算表达式表达式可以作为语句使用译注包括方法调用使用new运算符进行对象分配使用=和复合赋值运算符进行赋值以及使用++和运算符进行增量和减量的运算
选择语句(selection statement)用于根据某个表达式的值选择执行若干可能语句中的某一个这一组语句有if和switch语句
迭代语句(iteration statement)用于重复执行嵌入语句这一组语句有whiledofor和foreach语句
跳转语句(jump statement)用于传递程序控制这一组语句有breakcontinuegotothrow和return语句
trycatch语句用于捕捉在块的执行期间发生的异常并且tryfinally语句用于指定一个终止代码块不管异常出现与否它总是被执行
checked和unchecked语句用于控制整型算术运算和转换的溢出检查上下文
lock语句用于获取给定对象的互斥锁执行语句然后释放该锁
using语句用于获取一个资源执行一个语句然后处理该资源
表列出了C#的语句并逐个提供了示例
表 C#的语句
语 句
示 例
局部变量声明
static void Main(){
int a;
int b=c=;
a=;
ConsoleWriteLine(a+b+c);
}
局部常量声明
static void Main(){
const float pi=f;
const int r=;
ConsoleWriteLine(pi * r * r);
}
表达式语句
static void Main(){
int i;
i=; //表达式语句
ConsoleWriteLine(i); //表达式语句
i++; //表达式语句
ConsoleWriteLine(i); //表达式语句
}
if语句
static void Main(string[] args){
if(argsLength == ){
ConsoleWriteLine(No arguments);
}
else{
ConsoleWriteLine(One or more arguments);
}
}
(续表)
语 句
示 例
switch语句
static void Main(string[] args){
int n = argsLength;
switch(n){
case :
ConsoleWriteLine(No arguments);
break;
case :
ConsoleWriteLine(One argument);
break;
default:
ConsoleWriteLine({} arguments n);
break;
}
}
while语句
static void Main(string[] args){
int i = ;
while(i < argsLength){
ConsoleWriteLine(args[i]);
i++;
}
}
do语句
static void Main(){
string s;
do{
s = ConsoleReadLine();
if(s!=null) ConsoleWriteLine(s);
} while(s != null);
}
for语句
static void Main(string[] args){
for(int i = ; i < argsLength; i++){
ConsoleWriteLine(args[i]);
}
}
foreach语句
static void Main(string[] args){
foreach(string s in args){
ConsoleWriteLine(s);
}
}
break语句
static void Main(){
while(true){
string s = ConsoleReadLine();
if (s == null) break;
ConsoleWriteLine(s);
}
}
continue语句
static void Main(string[] args){
for(int i = ; i < argsLength; i++){
if (args[i]StartsWith(/)) continue;
ConsoleWriteLine(args[i]);
}
}
goto语句
static void Main(string[] args){
int i = ;
goto check;
loop:
ConsoleWriteLine(args[i++]);
check:
if (i < argsLength) goto loop;
}
(续表)
语 句
示 例
return语句
static int Add(int a int b){
return a + b;
}
static void Main(){
ConsoleWriteLine(Add( ));
return;
}
throw和try语句
static double Divide(double x double y) {
if (y == ) throw new DivideByZeroException();
return x / y;
}
static void Main(string[] args){
try{
if (argsLength !=){
throw new Exception(Two numbers required);
}
double x = doubleParse(args[]);
double y = doubleParse(args[]);
ConsoleWriteLine(Divide(x y));
}
catch (Exception e) {
ConsoleWriteLine(eMessage);
}
}
checked和unchecked语句
static void Main(){
int i = intMaxValue;
checked {
ConsoleWriteLine(i + ); //异常
}
unchecked {
ConsoleWriteLine(i + ); //溢出
}
}
lock语句
class Account
{
decimal balance;
public void Withdraw(decimal amount) {
lock(this) {
if (amount > balance) {
throw new Exception(Insufficient funds);
}
balance = amount;
}
}
}
using语句
static void Main(){
using (TextWriter w = FileCreateText(testtxt)) {
wWriteLine(Line one);
wWriteLine(Line two);
wWriteLine(Line three);
}
}