格式化规则 class 成员声明之间有空行

Formatting rule to have blank line between class member declarations

Microsoft 为 EditorConfig 提供了一堆编码设置 .NET coding convention settings for EditorConfig

但找不到创建规则的方法,这将建议开发人员在 class 成员声明之间添加空行。

// "Bad" style
public class Order
{
    private readonly IRepository _repository;
    private readonly IPriceCalculator _priceCalculator;
    public Order(IRepository repository, IPriceCalculator priceCalculator)
    {
        _repostitory = repository;
        _priceCalculator = priceCalculator;
    }
    public CopyFrom(Order originalOrder)
    {
        // Create new order
    }
    public Cancel(Customer customer)
    {
        // Cancel order
    }
}

// Good style
public class Order
{
    private readonly IRepository _repository;

    private readonly IPriceCalculator _priceCalculator;

    public Order(IRepository repository, IPriceCalculator priceCalculator)
    {
        _repostitory = repository;
        _priceCalculator = priceCalculator;
    }

    public CopyFrom(Order originalOrder)
    {
        // Create new order
    }

    public Cancel(Customer customer)
    {
        // Cancel order
    }
}

Visual Studio 的 .NET coding convention settings for EditorConfig 没有为此提供代码样式设置, EditorConfig itself.

也没有

因此仅使用 EditorConfig,无法创建这样的规则。

您可以考虑为此使用 StyleCop。

StyleCop 最初由 Microsoft 开发。该工具实现了 Microsoft 为 C# 语言定义的代码样式指南。现在开发继续作为开源。

StyleCop is available as a code analyzer (e.g. via this NuGet package),因此您甚至可以为您的项目和解决方案独立配置它。当然,您可以将配置存储在您的存储库中,以便在所有开发人员之间同步设置。配置存储在 .ruleset 文件中,文件格式由 Visual Studio 原生支持。

您也可以将 StyleCop 用作 Visual Studio 扩展(StyleCop Classic),但我不建议这样做。

对于您的用例,规则 SA1513 很重要。

Cause
A closing brace within a C# element, statement, or expression is not followed by a blank line.

总的来说,StyleCop 中有很多规则可以提高代码的可读性和结构。您可以自由选择适合您需要的规则。