You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 15:29:49