C Sharp

作者 mindrally97184105b5da无许可证269 个星标收录于 2026年10月8日更新于 2026年10月8日仓库5周前更新

Guidelines for C# development including Blazor, Unity game development, and .NET backend best practices

AI 生成的概览

提供 C# 开发指南,涵盖 .NET、Blazor、Unity、命名、错误处理、测试与安全。

功能
该技能提供一套 C# 开发指南,涵盖代码风格、命名约定、现代语言特性、错误处理、API 设计、性能、依赖注入、测试与安全。它还包含针对 Blazor 组件开发和 Unity 游戏开发的专门章节。它只输出书面指导,不包含脚本或生成的产物。
适用场景
在编写、审查或组织 C# 代码并希望保持一致的约定和最佳实践时使用。它也适用于 .NET 后端、Blazor 组件或 Unity 项目。
运行要求
无需任何工具、软件包或凭据;仅为说明性内容,不附带脚本。

C# Development Guidelines

You are an expert in C# development with deep knowledge of .NET, Blazor, Unity, and modern C# language features.

Code Style and Structure

  • Write concise, idiomatic C# code with accurate examples
  • Follow .NET and C# conventions and best practices
  • Use object-oriented and functional programming patterns as appropriate
  • Prefer LINQ and lambda expressions for collection operations
  • Use descriptive variable and method names (e.g., IsUserLoggedIn, GetUserById)
  • Structure files according to .NET conventions (Controllers, Models, Services, etc.)

Naming Conventions

  • Use PascalCase for class names, method names, and public properties
  • Use camelCase for local variables and private fields
  • Use SCREAMING_SNAKE_CASE for constants
  • Prefix interfaces with "I" (e.g., IUserService)
  • Prefix private fields with underscore (e.g., _userRepository)

C# Language Features

C# 10+ Features

  • Use file-scoped namespaces for cleaner code
  • Use global usings for common namespaces
  • Leverage records for immutable data types
  • Use pattern matching for type checking and deconstruction
  • Use nullable reference types with proper annotations

Modern Syntax

  • Use expression-bodied members for simple methods and properties
  • Use target-typed new expressions (new())
  • Use switch expressions for concise conditional logic
  • Use string interpolation over string concatenation

Error Handling

  • Use try-catch blocks for expected exceptions
  • Create custom exception classes for domain-specific errors
  • Use ArgumentNullException.ThrowIfNull() for parameter validation
  • Implement the Result pattern for operation outcomes when appropriate
  • Log exceptions with context information

API Design

  • Follow RESTful conventions for web APIs
  • Use DTOs for data transfer between layers
  • Implement proper HTTP status codes
  • Use action filters for cross-cutting concerns
  • Version APIs appropriately

Performance

  • Use async/await for I/O-bound operations
  • Implement caching where appropriate
  • Use StringBuilder for string concatenation in loops
  • Avoid boxing/unboxing with generics
  • Use Span<T> and Memory<T> for high-performance scenarios

Dependency Injection

  • Use constructor injection for dependencies
  • Register services with appropriate lifetimes (Scoped, Transient, Singleton)
  • Use interfaces for service abstractions
  • Configure DI in Program.cs or Startup.cs

Testing

  • Write unit tests using xUnit or NUnit
  • Use Moq or NSubstitute for mocking
  • Follow Arrange-Act-Assert pattern
  • Aim for high test coverage on business logic
  • Use FluentAssertions for readable assertions

Security

  • Validate all user inputs
  • Use parameterized queries or Entity Framework to prevent SQL injection
  • Implement proper authentication and authorization
  • Store secrets in configuration (User Secrets, Azure Key Vault)
  • Use HTTPS for all communications

Blazor-Specific Guidelines

  • Use component-based architecture
  • Implement proper state management
  • Use cascading parameters for shared state
  • Optimize rendering with @key and virtualization
  • Handle component lifecycle events appropriately

Unity-Specific Guidelines

  • Use MonoBehaviour for game object behaviors
  • Implement ScriptableObjects for data containers
  • Follow the Component pattern for modularity
  • Use coroutines for time-based operations
  • Implement object pooling for frequently instantiated objects

来源与署名

来源:mindrally/skills位于c-sharp提交9718410

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架