Visual Studio代码格式化最佳实践及自动格式化方法咨询
Visual Studio代码自动格式化与C#代码整洁最佳实践
一、Visual Studio的自动格式化支持
Visual Studio完全支持自动格式化代码,操作方式如下:
- 快速格式化选中代码:使用快捷键
Ctrl+K, Ctrl+F - 格式化整个文档:使用快捷键
Ctrl+E, Ctrl+D - 自定义格式规则:通过工具 → 选项 → 文本编辑器 → C# → 代码样式 → 格式设置调整缩进、换行、空格等细节,匹配你的偏好
- 保存自动格式化:在上述选项中开启「保存时格式化文档」,每次保存会自动应用规范
二、C#代码整洁结构化的最佳实践
结合你提供的代码,以下是针对性的优化建议:
1. 避免静态成员滥用
你的SQLClass大量使用静态连接对象和方法,会引发线程安全问题和资源泄漏风险。建议改为实例化类,用局部连接配合连接池管理:
internal class LibraryDbContext { private readonly string _connectionString; public LibraryDbContext() { _connectionString = @"URI=file:../../../database.db"; } private SQLiteConnection CreateConnection() { var connection = new SQLiteConnection(_connectionString); connection.Open(); return connection; } }
2. 彻底解决SQL注入风险
BookCustomerEdit、FindCustomer等方法直接拼接SQL字符串,存在严重安全漏洞,所有动态参数必须用参数化查询:
// 错误写法 command.CommandText = "UPDATE books SET MemberId = " + MemberId + " WHERE BookId = " + BookId + ";"; // 正确参数化写法 command.CommandText = "UPDATE books SET MemberId = @MemberId WHERE BookId = @BookId;"; command.Parameters.AddWithValue("@MemberId", MemberId); command.Parameters.AddWithValue("@BookId", BookId);
3. 统一异常处理逻辑
每个方法重复写try-catch弹窗逻辑,建议抽成公共方法,同时增加日志记录(生产环境更实用):
private void HandleException(Exception ex) { // 可添加日志框架记录异常详情 MessageBox.Show($"操作失败:{ex.Message}"); } // 使用示例 try { // 业务逻辑 } catch (Exception ex) { HandleException(ex); }
4. 规范命名与代码结构
- 命名遵循C#规范:类名用帕斯卡命名(比如
SQLClass改为LibraryDbContext更清晰),私有字段以下划线开头(_connectionString) - 方法职责单一:拆分
FindCustomer中SQL拼接与查询的逻辑,避免一个方法做多个事 - 统一缩进与换行:保持4空格缩进,字段、构造函数、方法之间留空行分隔,提升可读性
5. 自动释放资源
用using语句包裹所有实现IDisposable的对象(连接、命令、阅读器),确保资源自动回收:
using (var connection = CreateConnection()) using (var command = new SQLiteCommand(sql, connection)) { using (var reader = command.ExecuteReader()) { // 读取数据逻辑 } }
内容的提问来源于stack exchange,提问作者ReallyBadProgrammer
相关产品推荐
相关产品推荐

