用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/G1Joshi/Agent-Skills --skill csharp命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | csharp |
| description | C# programming for .NET, ASP.NET Core, LINQ, async patterns, and Entity Framework. Use for .cs files. |
Modern C# development with .NET 8+, async patterns, and Entity Framework.
.cs filespublic record User(string Id, string Name, string Email);
public class UserService
{
public async Task<User?> GetUserAsync(string id)
{
return await _repository.FindByIdAsync(id);
}
}
// Records for immutable data
public record User(string Id, string Name, string Email)
{
public string DisplayName => Name.ToUpperInvariant();
}
// With-expressions for copies
var updated = user with { Name = "New Name" };
// Nullable reference types
public User? FindUser(string id)
{
return users.FirstOrDefault(u => u.Id == id);
}
public async Task<List<User>> GetUsersAsync()
{
// Parallel async operations
var tasks = ids.Select(id => GetUserAsync(id));
var users = await Task.WhenAll(tasks);
return users.ToList();
}
// Async streams
public async IAsyncEnumerable<User> StreamUsersAsync()
{
await foreach (var user in _repository.GetAllAsync())
{
yield return user;
}
}
// Cancellation
public async Task<User> GetUserAsync(string id, CancellationToken ct)
{
return await _client.GetFromJsonAsync<User>($"/users/{id}", ct);
}
// Query syntax
var adults = from user in users
where user.Age >= 18
orderby user.Name
select user;
// Method syntax (preferred)
var result = users
.Where(u => u.IsActive)
.OrderBy(u => u.Name)
.Select(u => new UserDto(u.Id, u.Name))
.ToList();
// Grouping
var byCountry = users
.GroupBy(u => u.Country)
.ToDictionary(g => g.Key, g => g.ToList());
string GetStatus(object obj) => obj switch
{
User { IsActive: true } => "Active user",
User { IsActive: false } => "Inactive user",
null => "No data",
_ => "Unknown"
};
// List patterns
if (numbers is [var first, _, var last])
{
Console.WriteLine($"First: {first}, Last: {last}");
}
Do:
record for DTOs and value objectsDon't:
.Result or .Wait()dynamic when type is known| Error | Cause | Solution |
|---|---|---|
NullReferenceException | Accessing null | Enable nullable, use ?. |
ObjectDisposedException | Using disposed resource | Check lifetime, use using |
TaskCanceledException | Operation cancelled | Handle or propagate |