From 4f8302892ced558d9591ae9d7b689c9ce25f0224 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Thu, 9 Jul 2020 20:32:39 +0800 Subject: [PATCH] 2020-07-09 20:32:39 --- docs/csharp/18.md | 4 +- docs/csharp/19.md | 116 +++++++++++++++++++++++++++------------------- docs/csharp/20.md | 32 ++++++------- docs/csharp/21.md | 8 ++-- docs/csharp/3.md | 4 +- docs/csharp/5.md | 30 ++++++------ docs/csharp/6.md | 38 +++++++-------- docs/csharp/8.md | 4 +- docs/csharp/9.md | 2 +- 9 files changed, 130 insertions(+), 108 deletions(-) diff --git a/docs/csharp/18.md b/docs/csharp/18.md index fa75dd7..be8397e 100644 --- a/docs/csharp/18.md +++ b/docs/csharp/18.md @@ -123,7 +123,7 @@ When we run the program, the output will be: ## 按位异或 -按位异或运算符由`^`表示。 它对两个操作数的相应位执行按位异或操作。 如果相应的位与**相同**,则结果为`0`。 如果相应位的**与**不同,则结果为`1`。 +按位异或运算符由`^`表示。 它对两个操作数的相应位执行按位异或操作。 如果相应位**相同**,则结果为`0`。 如果相应位不同,则结果为`1`。 如果操作数的类型为`bool`,则按位异或运算等效于它们之间的逻辑异或运算。 @@ -213,7 +213,7 @@ When we run the program, the output will be: ~26 = -27 ``` -当我们期望`229`时,得到-`27`作为输出。 **为什么会发生这种情况?** +当我们期望`229`时,得到`-27`作为输出。 **为什么会发生这种情况?** 发生这种情况是因为我们期望是`229`的二进制值`11100101`实际上是`-27`的 2 的补码表示。 计算机中的负数以 2 的补码表示形式表示。 diff --git a/docs/csharp/19.md b/docs/csharp/19.md index e804bda..4261938 100644 --- a/docs/csharp/19.md +++ b/docs/csharp/19.md @@ -14,9 +14,9 @@ C# 中可用的预处理器指令为: Preprocessor directives in C# -| 预处理程序指令 | 描述 | 句法 | -| --- | --- | --- | -| `#if` | 检查预处理器表达式是否为真 | +`#if` + +检查预处理器表达式是否为真 ```cs #if preprocessor-expression @@ -24,8 +24,10 @@ Preprocessor directives in C# #endif ``` - | -| `#elif` | 与`#if`一起使用以检查多个预处理器表达式 | + +`#elif` + +与`#if`一起使用以检查多个预处理器表达式 ```cs #if preprocessor-expression-1 @@ -35,8 +37,10 @@ Preprocessor directives in C# #endif ``` - | -| `#else` | 与`#if`一起使用以创建复合条件指令。 | + +`#else` + +与`#if`一起使用以创建复合条件指令。 ```cs #if preprocessor-expression @@ -46,8 +50,10 @@ Preprocessor directives in C# #endif ``` - | -| `#endif` | 与`#if`一起使用以指示条件指令的结尾 | + +`#endif` + +与`#if`一起使用以指示条件指令的结尾 ```cs #if preprocessor-expression @@ -55,43 +61,55 @@ Preprocessor directives in C# #endif ``` - | -| `#define` | 用于定义符号 | + +`#define` + +用于定义符号 ```cs #define SYMBOL ``` - | -| `#undef` | 用于取消定义符号 | + +`#undef` + +用于取消定义符号 ```cs #undef SYMBOL ``` - | -| `#warning` | 允许我们从代码中生成 1 级警告 | + +`#warning` + +允许我们从代码中生成 1 级警告 ```cs #warning warning-message ``` - | -| `#error` | 允许我们从代码中生成错误 | + +`#error` + +允许我们从代码中生成错误 ```cs #error error-message ``` - | -| `#line` | 允许我们修改编译器的行号和文件名以显示错误和警告 | + +`#line` + +允许我们修改编译器的行号和文件名以显示错误和警告 ```cs #line line-number file-name ``` - | -| `#region` | 允许我们创建一个使用 Visual Studio 代码编辑器时可以扩展或折叠的区域 | + +`#region` + +允许我们创建一个使用 Visual Studio 代码编辑器时可以扩展或折叠的区域 ```cs #region region-description @@ -99,8 +117,10 @@ Preprocessor directives in C# #endregion ``` - | -| `#endregion` | 指示区域的结尾 | + +`#endregion` + +指示区域的结尾 ```cs #region region-description @@ -108,14 +128,16 @@ Preprocessor directives in C# #endregion ``` - | -| `#pragma` | 为编译器提供特别的说明,以编译其中出现的文件。 | + +`#pragma` + +为编译器提供特别的说明,以编译其中出现的文件。 ```cs #pragma pragma-name pragma-arguments ``` - | + * * * @@ -124,13 +146,13 @@ Preprocessor directives in C# * `#define`指令允许我们定义符号。 * 与`#if`伪指令一起使用时定义的符号将求值为`true`。 * 这些符号可用于指定编译条件。 -* **语法:** +* **语法**: ```cs #define SYMBOL ``` -* **例如:** +* **例如**: ```cs #define TESTING @@ -144,7 +166,7 @@ Preprocessor directives in C# * `#undef`指令允许我们取消定义符号。 * 与`#if`伪指令一起使用时,未定义的符号将计算为`false`。 -* **语法:** +* **语法**: ```cs #undef SYMBOL @@ -166,7 +188,7 @@ Preprocessor directives in C# * 预处理器表达式可以仅由符号组成,也可以由符号的组合以及`&&`(AND),`||`(OR),`!`(NOT)等运算符组成。 * `#if`指令后跟`#endif`指令。 * 仅当使用`#if`测试的表达式的值为`true`时,才会编译`#if`指令中的代码。 -* **语法:** +* **语法**: ```cs #if preprocessor-expression @@ -174,7 +196,7 @@ Preprocessor directives in C# #endif ``` -* **例如:** +* **例如**: ```cs #if TESTING @@ -218,7 +240,7 @@ CSHARP is defined * `#elif`指令与`#if`指令一起使用,可让我们创建复合条件指令。 * 在测试多个预处理器表达式时使用它。 * 仅当用`#elif`测试的表达式的值为真时,才编译`#elif`指令中的代码。 -* **语法:** +* **语法**: ```cs #if preprocessor-expression-1 @@ -228,7 +250,7 @@ CSHARP is defined #endif ``` -* **例如:** +* **例如**: ```cs #if TESTING @@ -244,7 +266,7 @@ CSHARP is defined * `#else`指令与`#if`指令一起使用。 * 如果前面的`#if`和`#elif`指令(如果存在)中的表达式都不为真,则将编译`#else`指令中的代码。 -* **语法:** +* **语法**: ```cs #if preprocessor-expression-1 @@ -256,7 +278,7 @@ CSHARP is defined #endif ``` -* **例如:** +* **例如**: ```cs #if TESTING @@ -273,7 +295,7 @@ CSHARP is defined ## `#endif`指令 * `#endif`指令与`#if`指令一起使用以指示`#if`指令的结尾。 -* **语法:** +* **语法**: ```cs #if preprocessor-expression-1 @@ -281,7 +303,7 @@ CSHARP is defined #endif ``` -* **例如:** +* **例如**: ```cs #if TESTING @@ -330,13 +352,13 @@ CSHARP is defined, PYTHON is undefined ## `#warning`指令 * `#warning`指令允许我们从代码中生成用户定义的一级警告。 -* **语法:** +* **语法**: ```cs #warning warning-message ``` -* **例如:** +* **例如**: ```cs #warning This is a warning message @@ -380,13 +402,13 @@ Program.cs(10,26): warning CS1030: #warning: 'CSHARP is undefined' [/home/myuser ## `#error`指令 * `#error`指令允许我们从代码中生成用户定义的错误。 -* **语法:** +* **语法**: ```cs #error error-message ``` -* **例如:** +* **例如**: ```cs #error This is an error message @@ -428,13 +450,13 @@ The build failed. Please fix the build errors and run again. ## `#line`指令 * `#line`指令允许我们修改行号和文件名以获取错误和警告。 -* **语法:** +* **语法**: ```cs #line line-number file-name ``` -* **例如:** +* **例如**: ```cs #line 50 "fakeprogram.cs" @@ -475,7 +497,7 @@ arp/directive-project/directive-project.csproj] * 该指令仅用于组织代码。 * `#region`块不能与`#if`块重叠。 但是,`#region`块可以包含在`#if`块内,并且`#if`块可以与`#region`块重叠。 * `#endregion`指令指示`#region`块的结尾。 -* **语法:** +* **语法**: ```cs #region region-description @@ -525,13 +547,13 @@ Hello * C# 支持两条`#pragma`指令: * `#pragma warning`:用于禁用或启用警告 * `#pragma checksum`:它生成用于调试的源文件的校验和。 -* **语法:** +* **语法**: ```cs #pragma pragma-name pragma-arguments ``` -* **例如:** +* **例如**: ```cs #pragma warning disable @@ -563,7 +585,7 @@ When we run the program, the output will be: Program.cs(12,22): warning CS1030: #warning: 'This is a warning 2' [/home/myuser/csharp/directive-project/directive-project.csproj] ``` -我们可以看到在输出屏幕上仅显示**第二警告**。 +我们可以看到在输出屏幕上仅显示**第二个警告**。 这是因为,我们最初禁用了第一个警告之前的所有警告,而仅在第二个警告之前将它们还原。 这就是隐藏第一个警告的原因。 diff --git a/docs/csharp/20.md b/docs/csharp/20.md index a74b103..b938208 100644 --- a/docs/csharp/20.md +++ b/docs/csharp/20.md @@ -4,9 +4,9 @@ #### 在本教程中,我们将学习命名空间,如何定义它,访问其成员以及在 C# 程序中使用它。 -命名空间在 C# 中用于组织和提供一定程度的代码分离。 可以将它们视为包含其他名称空间,类等的容器。 +命名空间在 C# 中用于组织和提供一定程度的代码分离。 可以将它们视为包含其他命名空间,类等的容器。 -名称空间可以具有以下类型作为其成员: +命名空间可以具有以下类型作为其成员: 1. 命名空间(嵌套命名空间) 2. 班级 @@ -14,21 +14,21 @@ 4. 结构体 5. 代表们 -我们将在以后的教程中讨论这些主题。 现在,我们将坚持使用类和名称空间。 +我们将在以后的教程中讨论这些主题。 现在,我们将坚持使用类和命名空间。 命名空间在 C# 程序中不是必需的,但在编写更简洁的代码和管理较大的项目中,它们确实起着重要的作用。 -让我们了解实际场景中名称空间的概念。 我们的计算机中有大量文件和文件夹。 想象一下,如果将它们放在单个目录中将很难管理它们。 这就是为什么我们将相关文件和文件夹放在单独的目录中的原因。 这有助于我们正确管理数据。 +让我们了解实际场景中命名空间的概念。 我们的计算机中有大量文件和文件夹。 想象一下,如果将它们放在单个目录中将很难管理它们。 这就是为什么我们将相关文件和文件夹放在单独的目录中的原因。 这有助于我们正确管理数据。 -命名空间的概念在 C# 中类似。 通过将相关成员放在同一名称空间中,它可以帮助我们**组织**不同的成员。 +命名空间的概念在 C# 中类似。 通过将相关成员放在同一命名空间中,它可以帮助我们**组织**不同的成员。 -命名空间还解决了**命名冲突**的问题。 当放在不同名称空间中的两个或多个类可以具有相同的名称。 +命名空间还解决了**命名冲突**的问题。 当放在不同命名空间中的两个或多个类可以具有相同的名称。 * * * ## 在 C# 中定义命名空间 -我们可以使用*名称空间*关键字在 C# 中定义一个名称空间: +我们可以使用*命名空间*关键字在 C# 中定义一个命名空间: ```cs namespace Namespace-Name @@ -53,13 +53,13 @@ namespace MyNamespace } ``` -在上面的示例中,创建了名称空间`MyNamespace`。 它由一个类`MyClass`作为其成员。`MyMethod`是`MyClass`类的方法。 +在上面的示例中,创建了命名空间`MyNamespace`。 它由一个类`MyClass`作为其成员。`MyMethod`是`MyClass`类的方法。 * * * ## 在 C# 中访问命名空间的成员 -可以使用`dot(.)`运算符访问名称空间的成员。 访问名称空间成员的语法是: +可以使用`dot(.)`运算符访问命名空间的成员。 访问命名空间成员的语法是: ```cs Namespace-Name.Member-Name @@ -109,7 +109,7 @@ namespace MyProgram Creating my namespace ``` -在上面的程序中,我们创建了自己的名称空间`MyNamespace`并从`MyClass`中的`Main()`方法访问其成员。 如前所述,`dot (.)`运算符用于访问名称空间的成员。 +在上面的程序中,我们创建了自己的命名空间`MyNamespace`并从`MyClass`中的`Main()`方法访问其成员。 如前所述,`dot (.)`运算符用于访问命名空间的成员。 在`Main()`方法中,使用`dot (.)`运算符调用`myMethod()`方法。 @@ -117,7 +117,7 @@ Creating my namespace ## 在 C# 中使用命名空间【使用关键字】 -可以使用`using`关键字在程序中包含名称空间。 语法是 +可以使用`using`关键字在程序中包含命名空间。 语法是 ```cs using Namespace-Name; @@ -129,7 +129,7 @@ using Namespace-Name; using System; ``` -这种方法的优点是,我们不必在每次访问该名称空间时都为其指定完全限定名称。 +这种方法的优点是,我们不必在每次访问该命名空间时都为其指定完全限定名称。 一旦行 @@ -153,9 +153,9 @@ System.Console.WriteLine("Hello World!"); ## C# 中的嵌套命名空间 -一个名称空间可以包含另一个名称空间。 它称为嵌套名称空间。 嵌套的名称空间及其成员也可以使用`dot (.)`运算符进行访问。 +一个命名空间可以包含另一个命名空间。 它称为嵌套命名空间。 嵌套的命名空间及其成员也可以使用`dot (.)`运算符进行访问。 -创建嵌套名称空间的语法如下: +创建嵌套命名空间的语法如下: ```cs namespace MyNamespace @@ -208,6 +208,6 @@ When we run the program, the output will be: Nested Namespace Example ``` -此示例说明了如何在 C# 中实现嵌套名称空间。 +此示例说明了如何在 C# 中实现嵌套命名空间。 -在这里,我们现在在`MyNamespace`内部有一个名为`Nested`的额外名称空间。 因此,我们不必使用`MyNamespace.SampleClass.myMethod()`,而必须使用`MyNamespace.Nested.SampleClass.myMethod()`。 \ No newline at end of file +在这里,我们现在在`MyNamespace`内部有一个名为`Nested`的额外命名空间。 因此,我们不必使用`MyNamespace.SampleClass.myMethod()`,而必须使用`MyNamespace.Nested.SampleClass.myMethod()`。 \ No newline at end of file diff --git a/docs/csharp/21.md b/docs/csharp/21.md index 7530257..60cee0d 100644 --- a/docs/csharp/21.md +++ b/docs/csharp/21.md @@ -4,11 +4,11 @@ #### 在本文中,我们将学习如何以及为什么在 C# 中实现部分类和部分方法。 -在很多情况下,您可能需要拆分类定义,例如在处理大型项目时,可能需要多个开发人员和程序员同时处理同一个类。 在这种情况下,我们可以使用称为 **Partial Class** 的功能。 +在很多情况下,您可能需要拆分类定义,例如在处理大型项目时,可能需要多个开发人员和程序员同时处理同一个类。 在这种情况下,我们可以使用称为**部分类**的功能。 * * * -## 部分课程简介 +## 部分类简介 在使用 C# (或 OOP)进行编程时,我们可以将类的定义划分为两个或多个源文件。 源文件包含类定义的一部分,并且在编译应用程序时将所有部分组合在一起。 为了拆分类定义,我们需要使用`partial`关键字。 @@ -88,7 +88,7 @@ namespace HeightWeightInfo ### 部分类要记住的事情 -`partial`关键字指定可以在名称空间中定义类的其他部分。 如果我们要使一个类成为局部类,则必须使用`partial`关键字。 类的所有部分都应该在相同的名称空间中,并在编译时可用以形成最终类型。 所有部分都必须具有相同的访问修饰符,即私有,公共等。 +`partial`关键字指定可以在命名空间中定义类的其他部分。 如果我们要使一个类成为局部类,则必须使用`partial`关键字。 类的所有部分都应该在相同的命名空间中,并在编译时可用以形成最终类型。 所有部分都必须具有相同的访问修饰符,即私有,公共等。 * 如果任何部分被声明为抽象的,则整个类型被认为是抽象的。 * 如果任何部分声明为密封的,则整个类型都视为密封的。 @@ -96,7 +96,7 @@ namespace HeightWeightInfo * 在部分定义中声明的任何类成员都可用于所有其他部分。 * 局部类的所有部分都应位于同一命名空间中。 -****注意:** `partial`修饰符不适用于委托或枚举声明 +**注意**:`partial`修饰符不适用于委托或枚举声明 * * * diff --git a/docs/csharp/3.md b/docs/csharp/3.md index 34fb915..1e2fca4 100644 --- a/docs/csharp/3.md +++ b/docs/csharp/3.md @@ -45,9 +45,9 @@ Hello World! 2. `namespace HelloWorld{...}` - `namespace`关键字用于定义我们自己的名称空间。 在这里,我们创建一个名为`HelloWorld`的命名空间。 + `namespace`关键字用于定义我们自己的命名空间。 在这里,我们创建一个名为`HelloWorld`的命名空间。 - 只是将名称空间视为由类,方法和其他名称空间组成的容器。 要获得名称空间的详细概述,*请访问* [C# 命名空间](/csharp-programming/namespaces "C# namespaces")。 + 只是将命名空间视为由类,方法和其他命名空间组成的容器。 要获得命名空间的详细概述,*请访问* [C# 命名空间](/csharp-programming/namespaces "C# namespaces")。 3. `class Hello{...}` diff --git a/docs/csharp/5.md b/docs/csharp/5.md index 54febc7..c31e1cf 100644 --- a/docs/csharp/5.md +++ b/docs/csharp/5.md @@ -110,7 +110,7 @@ value = 5; 1. 选择一个有意义的变量名。 例如,`name`,`age`,`主题`比`n`,`a`和`s`更有意义。 2. 使用 **camelCase** 表示法(以小写字母开头)来命名局部变量。 例如,`的学生人数`,`age`等。 3. 使用 **PascalCase** 或 **CamelCase** (以大写字母开头)来命名公共成员变量。 例如,`名字`,`价格`等。 -4. 使用前导下划线(_)后跟 **camelCase** 表示法来命名私有成员变量。 例如,`_bankBalance`,`_emailAddress`等。 +4. 使用前导下划线(`_`)后跟 **camelCase** 表示法来命名私有成员变量。 例如,`_bankBalance`,`_emailAddress`等。 您可以在处了解有关 C# 中[命名约定的更多信息](https://softwareengineering.stackexchange.com/questions/209532/naming-convention-of-variables-in-c-programming-language)。 @@ -120,7 +120,7 @@ value = 5; ## C# 基本数据类型 -C# 中的变量大致分为两种类型:**值类型**和**引用类型**。 在本教程中,我们将讨论作为值类型的子类的原始(简单)数据类型。 +C# 中的变量大致分为两种类型**:值类型**和**引用类型**。 在本教程中,我们将讨论作为值类型的子类的原始(简单)数据类型。 参考类型将在以后的教程中介绍。 但是,如果您想了解更多有关变量类型的信息,请访问 [C# 类型和变量](https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/types-and-variables)(官方 C# 文档)。 @@ -155,11 +155,11 @@ True * * * -### 带符号积分 +### 带符号整数 这些数据类型保存整数值(正数和负数)。 在所有可用位中,一位用于符号。 -**1.字节** +**1.`sbyte`** * **大小**:8 位 * **范围**:-128 至 127。 @@ -192,7 +192,7 @@ When we run the program, the output will be: * * * -**2.短** +**2.`short`** * **大小**:16 位 * **范围**:-32,768 至 32,767 @@ -223,7 +223,7 @@ When we run the program, the output will be: * * * -**3\. int** +**3\. `int`** * **大小**:32 位 * **范围**:-231 至 231-1 @@ -254,7 +254,7 @@ When we run the program, the output will be: * * * -**4.长** +**4.`long`** * **大小**:64 位 * **范围**:-263 至 263-1 @@ -289,7 +289,7 @@ When we run the program, the output will be: 这些数据类型仅保留等于或大于 0 的值。当我们确定不会有负值时,通常使用这些数据类型来存储值。 -**1.字节** +**1.`byte`** * **大小**:8 位 * **范围**:0 到 255。 @@ -320,7 +320,7 @@ When we run the program, the output will be: * * * -**2\. ushort** +**2\. `ushort`** * **大小**:16 位 * **范围**:0 到 65,535 @@ -351,7 +351,7 @@ When we run the program, the output will be: * * * -**3\. uint** +**3\. `uint`** * **大小**:32 位 * **范围**:0 到 232-1 @@ -382,7 +382,7 @@ When we run the program, the output will be: * * * -**4\. ulong** +**4\. `ulong`** * **大小**:64 位 * **范围**:0 到 264-1 @@ -417,7 +417,7 @@ When we run the program, the output will be: 这些数据类型保存浮点值,即包含十进制值的数字。 例如 12.36,-92.17 等。 -**1.浮动** +**1.`float`** * 单精度浮点型 * **大小**:32 位 @@ -449,7 +449,7 @@ When we run the program, the output will be: * * * -**2.双** +**2.`double`** * 双精度浮点类型。 [单精度和双精度浮点有什么区别?](https://stackoverflow.com/questions/801117/whats-the-difference-between-a-single-precision-and-double-precision-floating-p) * **大小**:64 位 @@ -481,7 +481,7 @@ When we run the program, the output will be: * * * -### 字符(字符) +### `char`(字符) * 它代表一个 16 位 unicode 字符。 * **大小**:16 位 @@ -518,7 +518,7 @@ x * * * -### 十进制 +### `decimal` * 与浮点类型(双精度和浮点型)相比,十进制类型具有更高的精度和更小的范围。 因此,它适合进行货币计算。 * **大小**:128 位 diff --git a/docs/csharp/6.md b/docs/csharp/6.md index 1f4d9c1..06694ff 100644 --- a/docs/csharp/6.md +++ b/docs/csharp/6.md @@ -56,7 +56,7 @@ Second Number = 10 这是一个简单的示例,演示了赋值运算符的用法。 -您可能已经注意到在示例中使用了大括号`{ }`。 我们将以*字符串格式*讨论它们。 现在,请记住,`{0}`被字符串后面的第一个变量替换,`{1}`被第二个变量替换,依此类推。 +您可能已经注意到在示例中使用了大括号`{ }`。 我们将以*字符串格式化*讨论它们。 现在,请记住,`{0}`被字符串后面的第一个变量替换,`{1}`被第二个变量替换,依此类推。 * * * @@ -75,12 +75,12 @@ int z = x + y;// z = 15 C# Arithmetic Operators -| 运算符 | 运算符名称 | 例 | +| 运算符 | 运算符名称 | 示例 | | --- | --- | --- | | `+` | 加法运算符 | `6 + 3`等于 9 | -| `-` | 减法运算符 | `10 - 6`计算为 4 | -| `*` | 乘法运算符 | `4 * 2`计算为 8 | -| `/` | 除法运算符 | `10 / 5`计算为 2 | +| `-` | 减法运算符 | `10 - 6`等于 4 | +| `*` | 乘法运算符 | `4 * 2`等于 8 | +| `/` | 除法运算符 | `10 / 5`等于 2 | | `%` | 模运算符(余数) | `16 % 3`等于 1 | ### 示例 2:算术运算符 @@ -148,11 +148,11 @@ result = firstNumber - 3.2; // result will hold 11.2 C# Relational Operators -| Operator | Operator Name | Example | +| 运算符 | 运算符名称 | 示例 | | --- | --- | --- | | `==` | 等于 | `6 == 4`计算为`false` | -| `>` | 大于 | `3 > -1`求值为`true` | -| `<` | 小于 | `5 < 3`求值为`false` | +| `>` | 大于 | `3 > -1`计算为`true` | +| `<` | 小于 | `5 < 3`计算为`false` | | `>=` | 大于或等于 | `4 >= 4`计算为`true` | | `<=` | 小于或等于 | `5 <= 3`计算为`false` | | `!=` | 不等于 | `10 != 2`计算为`true` | @@ -267,10 +267,10 @@ False C# unary operators -| Operator | Operator Name | 描述 | +| 运算符 | 运算符名称 | 描述 | | --- | --- | --- | -| `+` | 一元加号 | 保留操作数的原样 | -| `-` | 一元减号 | 反转操作数的符号 | +| `+` | 一元加 | 保留操作数的原样 | +| `-` | 一元减 | 反转操作数的符号 | | `++` | 递增 | 值增加 1 | | `--` | 递减 | 递减值 1 | | `!` | 逻辑否定(非) | 反转布尔值 | @@ -421,14 +421,14 @@ When we run the program, the output will be: C# Bitwise and Bit Shift operators -| Operator | Operator Name | +| 运算符 | 运算符名称 | | --- | --- | -| ~ | 按位补码 | -| & | 按位与 | -| | | 按位或 | -| ^ | 按位异或 | -| < < | 按位左移 | -| > > | 按位右移 | +| `~` | 按位补码 | +| `&` | 按位与 | +| | | 按位或 | +| `^` | 按位异或 | +| `<<` | 按位左移 | +| `>>` | 按位右移 | ### 例 8:按位和移位操作 @@ -486,7 +486,7 @@ When we run the program, the output will be: C# Compound Assignment Operators -| Operator | Operator Name | Example | 相当于 | +| 运算符 | 运算符名称 | 示例 | 相当于 | | --- | --- | --- | --- | | `+=` | 加法赋值 | `x += 5` | `x = x + 5` | | `-=` | 减法赋值 | `x -= 5` | `x = x - 5` | diff --git a/docs/csharp/8.md b/docs/csharp/8.md index 88dde53..c2362fb 100644 --- a/docs/csharp/8.md +++ b/docs/csharp/8.md @@ -93,8 +93,8 @@ System.Console.WriteLine("Hello"); 除了声明和表达式语句外,还有: * 选择语句(`if...else`,`switch`) -* 迭代语句(在`foreach`中执行,同时执行) -* 跳转语句(中断,继续,跳转,返回,收益) +* 迭代语句(`foreach`,`while`) +* 跳转语句(`break`,`continue`,`goto`,`return`,`yield`) * *异常处理*语句(`throw`,`try-catch`,`try-finally`,`try-catch-finally`) 这些语句将在以后的教程中讨论。 diff --git a/docs/csharp/9.md b/docs/csharp/9.md index 1e11f54..f062357 100644 --- a/docs/csharp/9.md +++ b/docs/csharp/9.md @@ -172,4 +172,4 @@ Console.WriteLine("Hello World"); * 而是应在程序中使用注释来解释复杂的算法和技术。 * 评论应简短,切题而不是冗长的描述。 -* 根据经验,最好使用注释解释**为什么**而不是**为何**。 \ No newline at end of file +* 根据经验,最好使用注释解释**为什么**而不是**做什么**。 \ No newline at end of file -- GitLab