{"enrichment":{"faq":[{"a":"Csharp Idioms teaches contemporary C# patterns including nullable reference types for compile-time null safety, records for immutable data modeling, and pattern matching with switch expressions. These idioms emphasize type safety and expressiveness, helping you write cleaner, more maintainable code that leverages C#'s modern type system and functional features.","q":"What are modern C# 10 patterns and idioms I should know?"},{"a":"Csharp Idioms covers nullable reference type setup as a foundational practice for type-safe code. Enabling this feature in your project file activates compile-time warnings for potential null reference issues, guiding you toward safer code patterns and reducing runtime null-reference exceptions through static analysis.","q":"How should I set up C# nullable reference types?"},{"a":"Csharp Idioms provides comprehensive async/await patterns and cancellation token usage guidance. You'll learn async-first design principles, proper cancellation token propagation through async methods, and how to avoid blocking patterns like Result or Wait, ensuring responsive applications and correct resource cleanup.","q":"What C# async await guidelines does this skill cover?"},{"a":"Csharp Idioms teaches constructor injection patterns with DI containers and domain-driven error handling using the Result pattern. These principles help you build loosely coupled, testable code with explicit error handling that avoids exceptions for control flow, improving code clarity and maintainability.","q":"How do Csharp Idioms address dependency injection and error handling?"},{"a":"Csharp Idioms covers xUnit testing with FluentAssertions for expressive assertions, parameterized tests for comprehensive coverage, dotnet format for consistent code formatting, and Roslyn analyzers for static analysis. These tools enforce idioms and catch issues early in development.","q":"What testing and code quality tools does Csharp Idioms recommend?"},{"a":"Csharp Idioms emphasizes LINQ best practices for data transformation, records for immutable domain models, and pattern matching with switch expressions for type-safe control flow. Together, these features enable functional, expressive code that reduces boilerplate and improves readability.","q":"How do LINQ, records, and pattern matching fit into idiomatic C#?"}],"shadow_tags":["type-safety-first","async-aware-design","immutable-data-structures","null-safety-enforcement","functional-patterns","dependency-graph-management","test-driven-idioms","framework-integration","code-quality-tooling","modern-dotnet-ecosystem"],"summary_rewrite":"Learn idiomatic C# patterns that leverage type safety, LINQ expressiveness, and async-first design. This skill covers modern features like nullable reference types, records, and pattern matching, plus practical guidance on error handling, dependency injection, and testing with xUnit."},"files":[{"bytes":5082,"path":".agents/skills/csharp-idioms/SKILL.md","sha256":"e99b75756d7cc5950d2955bc80184d913089b1a66441a3230d642c80ea20f5de","url":"https://skillfed.io/files/irahardianto/awesome-agv/csharp-idioms/09122a58/SKILL.md"}],"id":"irahardianto/awesome-agv/csharp-idioms","links":{"html":"https://skillfed.io/irahardianto/awesome-agv/csharp-idioms","md":"https://skillfed.io/irahardianto/awesome-agv/csharp-idioms.md","repo":"https://github.com/irahardianto/awesome-agv"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":48,"language":"JavaScript","last_updated":"2026-07-17","license":"MIT","name":"Csharp Idioms","publisher":"irahardianto","stars":150},"relations":{"similar":[{"id":"personamanagmentlayer/pcl/csharp-expert"},{"id":"softspark/ai-toolkit/csharp-patterns"},{"id":"irahardianto/awesome-agv/cpp-idioms"},{"id":"wshaddix/dotnet-skills/dotnet-csharp-dependency-injection"},{"id":"irahardianto/awesome-agv/java-idioms"},{"id":"miles990/claude-software-skills/csharp-dotnet"},{"id":"irahardianto/awesome-agv/dotnet-idioms"},{"id":"irahardianto/awesome-agv/spring-boot-idioms"},{"id":"affaan-m/ECC/csharp-testing"},{"id":"irahardianto/awesome-agv/laravel-idioms"}]},"slug":{"owner":"irahardianto","repo":"awesome-agv","skill":"csharp-idioms"},"version":"09122a58"}
