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