بنقرة واحدة
tsinswreng-write-csharp-code
編寫C#代碼時閱讀此skill
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
編寫C#代碼時閱讀此skill
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Avalime項目的文檔。開發Avalime項目時必須閱讀此skill
AI的持久化記憶。此skill爲必讀。執行任務前先看記憶、執行任務後再按需更新記憶
在需求分析之後 編碼實現之前 閱讀此skill
需求分析skill。默認情況下、你應當先做需求分析 再設計實現。除非用戶明確要求你不用分析
聲明與實現分離。編碼階段初步設計與詳細實現時必須閱讀此skill
遇到疑問時立即停止工作並與用戶確認。此skill爲必讀
| name | tsinswreng-write-csharp-code |
| description | 編寫C#代碼時閱讀此skill |
global using i32 = int;
global using str = string;
global using obj = object;
global using nil = object; // 專門用來表示null
global using CT = CancellationToken;
全局變量:const nil NIL = null
CT Ct的爲異步函數、不需要加Async後綴Task<nil>、不用無泛型的Taskasync正確示例:
async Task<nil> WriteToFile(str FilePath, str Content, CT Ct){
...
return NIL;
}
getter/setter和lambda外、在類型中定義與實現的普通方法 禁止使用=>寫法。 即使只有一行代碼也要寫成傳統的大括弧+return的函數體形式。除非特殊說明、 !!!所有代碼必須兼容AOT!!!
如果代碼中有 IEnumerable<>或IAsyncEnumerable<> 則默認是需要懶加載的。
設計API旹優先接收IAsyncEnumerable<>。
對于可迭代聚合、謹慎使用.ToList()或類似API 因爲這會把所有元素都載入內存! 也不要自己foreach消費的時候自己開List積攢起來
需要操作內部元素旹盡量使用.Select保持懶加載
可迭代集合 只允許消費一遍!! 不允許多次消費!
流亦同理、 Stream 默認需要懶加載、不能把全部數據都一次性載入內存、不能用MemoryStream接收
設計API旹優先考慮異步版本 尤其是IO操作相關的。 善用Task<T>和IAsyncEnumerable<T>
類型(interface/class/struct/enum 等等)/函數/成員 及 函數內部的實現(子步驟/關鍵分支) 都要寫註釋!!!
當你需要調用已有代碼的API時、大部分情況下你只需要關注函數聲明 不需要關心內部具體實現 以節約token。
有兩種情況、一種是基于接口實現; 另一種是基于partial關鍵字實現(類似于C語言的頭文件);
優先閱讀接口中的代碼。通過依賴注入系統使用接口。通常不需要閱讀具體實現。
約定:
訪問Xxx中的API時 優先閱讀*.Decl.cs。