doc: update docs/cs.md

This commit is contained in:
jaywcjlove 2023-05-20 10:17:26 +08:00
parent 862813a0fc
commit 36482c5846

View File

@ -43,14 +43,40 @@ namespace Test{
``` ```
### 访问修饰符 ### 访问修饰符
<!--rehype:wrap-class=row-span-2-->
| 声明的可访问性 | 含义 | | 声明的可访问性 | 含义 |
|-----|----------------------| |-----|----------------------|
| public | 访问不受限制 | | `public` | 访问不受限制 |
| protected | 访问限于包含类或派生自包含类的类型 (该类内部和继承类中可以访问) | | `protected` | 访问限于包含类或派生自包含类的类型 (该类内部和继承类中可以访问) |
| internal | 访问限于当前程序集 | | `internal` | 访问限于当前程序集 |
| protected internal | 访问限于当前程序集或派生自包含类的类型 | | `protected internal` | 访问限于当前程序集或派生自包含类的类型 |
| private | 访问限于包含类 | | `private` | 访问限于包含类 |
| private protected | 访问限于包含类或当前程序集中派生自包含类的类型,自 C# 7.2 之后可用 | | `private protected` | 访问限于包含类或当前程序集中派生自包含类的类型,自 C# 7.2 之后可用 |
<!--rehype:className=style-list-->
### 字符串
```cs
string first = "John";
string last = "Doe";
// 字符串连接
string name = first + " " + last;
Console.WriteLine(name); // => John Doe
```
查看: [C#字符串](#c-字符串)
### 用户输入
```cs showLineNumbers
Console.WriteLine("Enter number:");
if(int.TryParse(Console.ReadLine(),out int input))
{
// 输入验证
Console.WriteLine($"You entered {input}");
}
```
### 变量 ### 变量
@ -88,29 +114,6 @@ var bo = false;
*/ */
``` ```
### 字符串
```cs
string first = "John";
string last = "Doe";
// 字符串连接
string name = first + " " + last;
Console.WriteLine(name); // => John Doe
```
查看: [C#字符串](#c-字符串)
### 用户输入
```cs showLineNumbers
Console.WriteLine("Enter number:");
if(int.TryParse(Console.ReadLine(),out int input))
{
// 输入验证
Console.WriteLine($"You entered {input}");
}
```
### 条件判断 ### 条件判断
```cs ```cs
@ -160,29 +163,29 @@ C# 数据类型
| 关键字 | 名称 | System 别名 | 占用空间Byte | 数据范围 | | 关键字 | 名称 | System 别名 | 占用空间Byte | 数据范围 |
| ------ | ------------ | ----------- | ---------- | ---------------------------------------- | | ------ | ------------ | ----------- | ---------- | ---------------------------------------- |
| bool | 布尔型 | Boolean | 1 | true/false | | `bool` | 布尔型 | `Boolean` | 1 | true/false |
| sbyte | 有符号字节型 | SByte | 1 | -128 ~ 127 | | `sbyte` | 有符号字节型 | `SByte` | 1 | -128 ~ 127 |
| byte | 字节型 | Byte | 1 | 0 ~ 255 | | `byte` | 字节型 | `Byte` | 1 | 0 ~ 255 |
| short | 短整型 | Int16 | 2 | -32,768 ~ 32,767 | | `short` | 短整型 | `Int16` | 2 | -32,768 ~ 32,767 |
| ushort | 无符号短整型 | UInt16 | 2 | 0 ~ 65,535 | | `ushort` | 无符号短整型 | `UInt16` | 2 | 0 ~ 65,535 |
| int | 整型 | Int32 | 4 | -2,147,483,648 ~ 2,147,483,647 | | `int` | 整型 | `Int32` | 4 | -2,147,483,648 ~ 2,147,483,647 |
| uint | 无符号整型 | UInt32 | 4 | 0 ~ 4,294,967,295 | | `uint` | 无符号整型 | `UInt32` | 4 | 0 ~ 4,294,967,295 |
| long | 长整型 | Int64 | 8 | -2^63 ~ 2^63-1 | | `long` | 长整型 | `Int64` | 8 | -2^63 ~ 2^63-1 |
| ulong | 无符号长整型 | UInt64 | 8 | 0 ~ 2^64-1 | | `ulong` | 无符号长整型 | `UInt64` | 8 | 0 ~ 2^64-1 |
| char | 字符型 | Char | 8 | UTF-16 所编码的字符 | | `char` | 字符型 | `Char` | 8 | UTF-16 所编码的字符 |
| float | 单精度浮点型 | Single | 4 | ±1.5x10^45 ~ ±3.4x10^38 | | `float` | 单精度浮点型 | `Single` | 4 | ±1.5x10^45 ~ ±3.4x10^38 |
| double | 双精度浮点型 | Double | 8 | ±5.0x10^-324 ~ ±1.7x10^308 | | `double` | 双精度浮点型 | `Double` | 8 | ±5.0x10^-324 ~ ±1.7x10^308 |
| nint | 指针型 | IntPtr | 与指针相同 | 与指针相同(受操作系统和处理器位宽影响) | | `nint` | 指针型 | `IntPtr` | 与指针相同 | 与指针相同(受操作系统和处理器位宽影响) |
| nuint | 无符号指针型 | UIntPtr | 与指针相同 | 与指针相同(受操作系统和处理器位宽影响) | | `nuint` | 无符号指针型 | `UIntPtr` | 与指针相同 | 与指针相同(受操作系统和处理器位宽影响) |
<!--rehype:className=show-header--> <!--rehype:className=show-header-->
### 基本数据类型 ### 基本数据类型
| 关键字 | 名称 | System 别名 | 说明 | 关键字 | 名称 | System 别名 | 说明
| -------------------------------- | ------------ | ----------- | ------------------------------------------------------------------ | :------ | ------ | ------ | ------
| (除指针型外的全部原始数据类型) | | | 原始数据类型都是值类型,基本数据类型包含部分本质上是引用的数据类型 | (除指针型外的全部原始数据类型) | - | - | 原始数据类型都是值类型,基本数据类型包含部分本质上是引用的数据类型
| string | 字符串 | String | 可变长度 | `string` | 字符串 | `String` | 可变长度
| decimal | 十进制浮点数 | Decimal | 适合处理货币等计算16字节长不遵循 IEEE 754 关于浮点数的规则 | `decimal` | 十进制浮点数 | `Decimal` | 适合处理货币等计算16字节长不遵循 IEEE 754 关于浮点数的规则
<!--rehype:className=show-header--> <!--rehype:className=show-header-->
C# 字符串 C# 字符串
@ -268,8 +271,9 @@ Console.WriteLine(multiLine); // => Content begin "Hello World!" /\n<>"" end.
### 字符串操作 ### 字符串操作
#### 字符串分割
```cs ```cs
//字符串分割
string Name = "字A符A串A分A割"; string Name = "字A符A串A分A割";
string[] Names=Name.Split(new char[] { 'A' }); string[] Names=Name.Split(new char[] { 'A' });
//会以A为媒介把字符串分成若干份 //会以A为媒介把字符串分成若干份
@ -277,14 +281,20 @@ for (int i = 0; i < Names.Length; i++)
{ {
Console.Write(Names[i]); Console.Write(Names[i]);
} }
//----------------------------------- ```
//字符串截取
#### 字符串截取
```cs
string Str = "字符串截取"; string Str = "字符串截取";
Str = Str.Substring(2, 1); Str = Str.Substring(2, 1);
Console.WriteLine(Str); Console.WriteLine(Str);
//输出结果“串”,意为从第二个下标开始截取一位字符 //输出结果“串”,意为从第二个下标开始截取一位字符
//----------------------------------- ```
//字符串替换
#### 字符串替换
```cs
string Rep = "字符1替换"; string Rep = "字符1替换";
Rep = Rep.Replace("1", "串"); Rep = Rep.Replace("1", "串");
Console.WriteLine(Rep); Console.WriteLine(Rep);
@ -339,8 +349,8 @@ null | null | null | null | null | null
概念 | 中文名 | 定义 概念 | 中文名 | 定义
:- | -|-- :- | -|--
Runtime | 运行时 | 执行给定的已编译代码单元所需的服务集合 `Runtime` | 运行时 | 执行给定的已编译代码单元所需的服务集合
Common Language Runtime (CLR) | 通用语言运行库 | 主要定位、加载和托管 .NET 对象。<br/>CLR 还处理内存管理、应用程序托管、线程协调、执行安全检查和其他低级细节 `Common Language Runtime (CLR)` | 通用语言运行库 | 主要定位、加载和托管 .NET 对象。<br/>CLR 还处理内存管理、应用程序托管、线程协调、执行安全检查和其他低级细节
Managed code | 托管代码 | 在 `.NET` 运行时编译和运行的代码。 C#/F#/VB 就是例子 `Managed code` | 托管代码 | 在 `.NET` 运行时编译和运行的代码。 C#/F#/VB 就是例子
Unmanaged code | 非托管代码 | 直接编译为机器代码且不能由 .NET 运行时直接托管的代码。<br/>不包含空闲内存管理、垃圾收集等。从 C/C++ 创建的 DLL 就是示例 `Unmanaged code` | 非托管代码 | 直接编译为机器代码且不能由 .NET 运行时直接托管的代码。<br/>不包含空闲内存管理、垃圾收集等。从 C/C++ 创建的 DLL 就是示例
<!--rehype:className=show-header--> <!--rehype:className=show-header-->