2007年7月29日星期日

【c#】C# 语句大全

程序的活动是通过语句(statement)来表达的。C#支持几种不同的语句,许多语句是以嵌入语句的形式定义的。
  块(block)允许在只能使用单个语句的上下文中编写多个语句。块由一个括在大括号“{}”内的语句列表组成。
  声明语句(declaration statement)用于声明局部变量和常量。
  表达式语句(expression statement)用于运算表达式。表达式可以作为语句使用译注3,包括方法调用、使用new运算符进行对象分配、使用“=”和复合赋值运算符进行赋值,以及使用“++”和“--”运算符进行增量和减量的运算。
  选择语句(selection statement)用于根据某个表达式的值,选择执行若干可能语句中的某一个。这一组语句有if和switch语句。
  迭代语句(iteration statement)用于重复执行嵌入语句。这一组语句有while,do,for和foreach语句。
  跳转语句(jump statement)用于传递程序控制。这一组语句有break,continue,goto,throw和return语句。
  try-catch语句用于捕捉在块的执行期间发生的异常。并且,try-finally语句用于指定一个终止代码块,不管异常出现与否,它总是被执行。
checked和unchecked语句用于控制整型算术运算和转换的溢出检查上、下文。
  lock语句用于获取给定对象的互斥锁,执行语句,然后释放该锁。
  using语句用于获取一个资源,执行一个语句,然后处理该资源。

C# 中的大多数语句都是直接从 C C++ 借用的,但有一些值得注意的添加和修改。下表列出了可用的语句类型,并提供了每种类型的示例。

语句

示例

语句列表和块语句

static void Main() {
F();
G();
{
H();
I();
}
}

标记语句和 goto 语句

static void Main(string[] args) {
if (args.Length == 0)
goto done;
Console.WriteLine(args.Length);

done:
Console.WriteLine("Done");
}

局部常数声明

static void Main() {
const float pi = 3.14f;
const int r = 123;
Console.WriteLine(pi * r * r);
}

局部变量声明

static void Main() {
int a;
int b = 2, c = 3;
a = 1;
Console.WriteLine(a + b + c);
}

表达式语句

static int F(int a, int b) {
return a + b;
}

static void Main() {
F(1, 2); // Expression statement
}

if 语句

static void Main(string[] args) {
if (args.Length == 0)
Console.WriteLine("No args");
else
Console.WriteLine("Args");
}

switch 语句

static void Main(string[] args) {
switch (args.Length) {
case 0:
Console.WriteLine("No args");
break;
case 1:
Console.WriteLine("One arg ");
break;
default:
int n = args.Length;
Console.WriteLine("{0} args", n);
break;
}
}

while 语句

static void Main(string[] args) {
int i = 0;
while (i < args.Length) {
Console.WriteLine(args[i]);
i++;
}
}

do 语句

static void Main() {
string s;
do { s = Console.ReadLine(); }
while (s != "Exit");
}

for 语句

static void Main(string[] args) {
for (int i = 0; i < args.Length; i++)
Console.WriteLine(args[i]);
}

foreach 语句

static void Main(string[] args) {
foreach (string s in args)
Console.WriteLine(s);
}

break 语句

static void Main(string[] args) {
int i = 0;
while (true) {
if (i == args.Length)
break;
Console.WriteLine(args[i++]);
}
}

continue 语句

static void Main(string[] args) {
int i = 0;
while (true) {
Console.WriteLine(args[i++]);
if (i < args.Length)
continue;
break;
}
}

return 语句

static int F(int a, int b) {
return a + b;
}

static void Main() {
Console.WriteLine(F(1, 2));
return;
}

throw 语句和 try 语句

static int F(int a, int b) {
if (b == 0)
throw new Exception("Divide by zero");
return a / b;
}

static void Main() {
try {
Console.WriteLine(F(5, 0));
}
catch(Exception e) {
Console.WriteLine("Error");
}
}

checked unchecked 语句

static void Main() {
int x = Int32.MaxValue;

Console.WriteLine(x + 1); // Overflow

checked {
Console.WriteLine(x + 1); // Exception
}

unchecked {
Console.WriteLine(x + 1); // Overflow
}
}

lock 语句

static void Main() {
A a = ...;
lock(a) {
a.P = a.P + 1;
}
}

using statements

static void Main() {
using (Resource r = new Resource()) {
r.F();
}
}

没有评论: