com um clique
tsinswreng-write-csharp-code
編寫C#代碼時閱讀此skill
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
編寫C#代碼時閱讀此skill
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
| 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。