添加 MX-PD-盘古 项目文件

将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
Shi.Ji
2026-05-18 11:43:09 +08:00
parent 03632a379d
commit e31d3560bb
739 changed files with 99783 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
---
applyTo: "**/*.cs"
---
# C# Base Instructions
## Language Version Constraint
This repository targets .NET Framework 4.8 and C# 7.3.
Do not use:
- record
- init property setters
- switch expressions
- using declarations
- top-level statements
- nullable reference types
- range operators (`..`)
- default interface implementations
- IAsyncEnumerable<T>
Allowed:
- async/await
- pattern matching with is / switch case patterns
- tuples
- local functions
- inline out variable declarations
- throw expressions
- ref locals and ref returns
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĿĿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ .NET Framework 4.8<EFBFBD><EFBFBD>C# <20><EFBFBD>̶<EFBFBD>Ϊ 7.3<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>
- <20><>ֹʹ<D6B9><CAB9> record<72><64>init<69><74>switch <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>using <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD> C# 8+ <20><><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> async/await<69><74>Ԫ<EFBFBD><EFBFBD><E9A1A2><EFBFBD>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD>ģʽƥ<CABD><EFBFBD><E4A1A2><EFBFBD><EFBFBD> out <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# 7.3 ֧<>ֵĹ<D6B5><C4B9><EFBFBD>
## Style Rules
- Use explicit types, not `var`
- Use Allman braces
- Use 4 spaces indentation
- Use CRLF line endings
- Use block-scoped namespaces
- Place using directives outside namespaces
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><>ʽ<EFBFBD><CABD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ʹ<EFBFBD><CAB9> `var`
- ʹ<><CAB9> Allman <20><><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD>
- 4 <20>ո<EFBFBD><D5B8><EFBFBD><EFBFBD><EFBFBD>
- ʹ<><CAB9> CRLF <20><><EFBFBD><EFBFBD>
- ʹ<>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
- using <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>
## Naming Rules
- Public types, methods, properties, events: PascalCase
- Private fields: _camelCase
- Constants: PascalCase
- Interfaces: I + PascalCase
- Enums: PascalCase
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD><D4A1>¼<EFBFBD><C2BC><EFBFBD>PascalCase
- ˽<><CBBD><EFBFBD>ֶΣ<D6B6>`_camelCase`
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PascalCase
- <20>ӿڣ<D3BF>`I` + PascalCase
- ö<>٣<EFBFBD>PascalCase
## Constructor Injection
Prefer constructor injection with null checks.
Example:
```csharp
public SafeAxisMotion(HardwareManager hardware, AlarmOperate alarmOperate)
{
_hardware = hardware ?? throw new ArgumentNullException(nameof(hardware));
_alarmOperate = alarmOperate ?? throw new ArgumentNullException(nameof(alarmOperate));
}
```
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> null <20><><EFBFBD>
<EFBFBD><EFBFBD>Ҫʡ<EFBFBD><EFBFBD> null <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
## Async Rules
Async methods must use Async suffix
Pass CancellationToken where appropriate
Do not block async code with .Result or .Wait() unless existing architecture requires it and the reason is explicit
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Async <20><>׺
- <20><>Ҫ֧<D2AA><D6A7>ȡ<EFBFBD><C8A1><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>봫 CancellationToken
- <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> .Result <20><> .Wait() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>мܹ<D0BC><DCB9><EFBFBD>ȷҪ<C8B7><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
## Code Generation Preference
Keep methods focused and readable
Prefer explicit domain terminology over generic names
Avoid unnecessary abstractions
Match the existing repository style
## <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
<EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
- <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ְ<EFBFBD><D6B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><E2B2BB>Ҫ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>вֿ<D0B2><D6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>