Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
programiz-zh
提交
4f830289
P
programiz-zh
项目概览
OpenDocCN
/
programiz-zh
9 个月 前同步成功
通知
0
Star
48
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
programiz-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4f830289
编写于
7月 09, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-07-09 20:32:39
上级
f81d43a0
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
130 addition
and
108 deletion
+130
-108
docs/csharp/18.md
docs/csharp/18.md
+2
-2
docs/csharp/19.md
docs/csharp/19.md
+69
-47
docs/csharp/20.md
docs/csharp/20.md
+16
-16
docs/csharp/21.md
docs/csharp/21.md
+4
-4
docs/csharp/3.md
docs/csharp/3.md
+2
-2
docs/csharp/5.md
docs/csharp/5.md
+15
-15
docs/csharp/6.md
docs/csharp/6.md
+19
-19
docs/csharp/8.md
docs/csharp/8.md
+2
-2
docs/csharp/9.md
docs/csharp/9.md
+1
-1
未找到文件。
docs/csharp/18.md
浏览文件 @
4f830289
...
...
@@ -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 的补码表示形式表示。
...
...
docs/csharp/19.md
浏览文件 @
4f830289
...
...
@@ -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
]
```
我们可以看到在输出屏幕上仅显示
**第二警告**
。
我们可以看到在输出屏幕上仅显示
**第二
个
警告**
。
这是因为,我们最初禁用了第一个警告之前的所有警告,而仅在第二个警告之前将它们还原。 这就是隐藏第一个警告的原因。
...
...
docs/csharp/20.md
浏览文件 @
4f830289
...
...
@@ -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
docs/csharp/21.md
浏览文件 @
4f830289
...
...
@@ -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`
修饰符不适用于委托或枚举声明
* * *
...
...
docs/csharp/3.md
浏览文件 @
4f830289
...
...
@@ -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{...}`
...
...
docs/csharp/5.md
浏览文件 @
4f830289
...
...
@@ -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 位
...
...
docs/csharp/6.md
浏览文件 @
4f830289
...
...
@@ -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
|
|
运算符 | 运算符名称
|
| --- | --- |
|
~
| 按位补码 |
|
&
| 按位与 |
|
|
| 按位或 |
|
^
| 按位异或 |
|
< <
| 按位左移 |
|
> >
| 按位右移 |
|
`~`
| 按位补码 |
|
`&`
| 按位与 |
|
<code>
|
</code>
| 按位或 |
|
`^`
| 按位异或 |
|
`<<`
| 按位左移 |
|
`>>`
| 按位右移 |
### 例 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`
|
...
...
docs/csharp/8.md
浏览文件 @
4f830289
...
...
@@ -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`
)
这些语句将在以后的教程中讨论。
...
...
docs/csharp/9.md
浏览文件 @
4f830289
...
...
@@ -172,4 +172,4 @@ Console.WriteLine("Hello World");
*
而是应在程序中使用注释来解释复杂的算法和技术。
*
评论应简短,切题而不是冗长的描述。
*
根据经验,最好使用注释解释
**为什么**
而不是
**为何**
。
\ No newline at end of file
*
根据经验,最好使用注释解释
**为什么**
而不是
**做什么**
。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录