# C# 表达式，语句和块（带有示例）

> 原文： [https://www.programiz.com/csharp-programming/expressions-statements-blocks](https://www.programiz.com/csharp-programming/expressions-statements-blocks)

#### 在本文中，我们将学习 C# 表达式，C# 语句，表达式与语句之间的区别以及 C# 块。

表达式，语句和块是 C# 程序的构建块。 自从我们的第一个 [HelloWorld 程序](/csharp-programming/hello-world "C# Hello World program")开始，我们就一直在使用它们。

* * *

## C# 表达式

C# 中的表达式是操作数（变量，字面值，方法调用）和运算符的组合，可以将它们求值为单个值。 确切地说，一个表达式必须至少具有一个操作数，但不能具有任何运算符。

让我们看下面的例子：

```cs
double temperature;
temperature = 42.05;
```

在此，`42.05`是一个表达式。 另外，`temperature = 42.05`也是一个表达式。

```cs
int a, b, c, sum;
sum = a + b + c;
```

在此，`a + b + c`是一个表达式。

```cs
if (age>=18 && age<58)
	Console.WriteLine("Eligible to work");
```

在此，`(age>=18 && age<58)`是返回`boolean`值的表达式。`"Eligible to work"`也是一种表达。

* * *

## C# 语句

语句是程序执行的基本单位。 一个程序由多个语句组成。

例如：

```cs
int age = 21;
Int marks = 90;
```

在上面的示例中，以上两行都是语句。

C# 中有不同类型的语句。 在本教程中，我们将主要关注其中两个：

1.  声明语句
2.  表达式语句

* * *

### 声明语句

声明语句用于声明和初始化变量。

例如：

```cs
char ch;
int maxValue = 55;
```

`char ch;`和`int maxValue = 55;`都是声明语句。

* * *

### 表达式语句

表达式后跟分号称为表达式语句。

例如：

```cs
/* Assignment */
area = 3.14 * radius * radius;
/* Method call is an expression*/

System.Console.WriteLine("Hello");
```

在这里，`3.14 * radius * radius`是一个表达式，`area = 3.14 * radius * radius;`是一个表达式语句。

同样，`System.Console.WriteLine("Hello");`既是表达式也是语句。

除了声明和表达式语句外，还有：

*   选择语句（`if...else`，`switch`）
*   迭代语句（`foreach`，`while`）
*   跳转语句（`break`，`continue`，`goto`，`return`，`yield`）
*   *异常处理*语句（`throw`，`try-catch`，`try-finally`，`try-catch-finally`）

这些语句将在以后的教程中讨论。

如果您想了解有关语句的更多信息，请访问 [C# 语句](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/statements "Details about statements in C#")（C# 参考）

* * *

## C# 块

块是括在大括号{}中的零个或多个语句的组合。

例如：

## 示例 1：带有语句的 C# 块

```cs
using System;

namespace Blocks
{
	class BlockExample
	{
		public static void Main(string[] args)
		{
			double temperature = 42.05;
			if (temperature > 32)
			{	// Start of block
				Console.WriteLine("Current temperature = {0}", temperature);
				Console.WriteLine("It's hot");
			}	// End of block
		}
	}
}
```

当我们运行程序时，输出将是：

```cs
Current temperature = 42.05
It's hot
```

这里，`{ }`中的两个语句：

```cs
Console.WriteLine("Current temperature = {0}", temperature);
```

和

```cs
Console.WriteLine("It's hot");
```

形成**块**。

* * *

### 示例 2：没有语句的 C# 块

块中可能没有任何语句，如以下示例所示。

```cs
using System;

namespace Blocks
{
	class BlockExample
	{
		public static void Main(string[] args)
		{
			double temperature = 42.05;
			if (temperature > 32)
			{	// Start of block
				// No statements
			}	// End of block
		}
	}
}
```

在此，`if(temperature > 32)`之后的花括号`{ }`仅包含注释，而没有语句。