Неправильно ли использовать фигурные скобки для переменной области видимости?

Я иногда использую фигурные скобки, чтобы изолировать блок кода, чтобы избежать ошибочного использования переменной позже. Например, когда я ставлю несколькоSqlCommandИспользуя один и тот же метод, я часто копирую и вставляю блоки кода, заканчивая смешиванием имен и выполнением дважды некоторых команд. Добавление скобок помогает избежать этой ситуации, потому что использование неправильногоSqlCommand в неправильном месте приведет к ошибке. Вот иллюстрация:

Collection<string> existingCategories = new Collection<string>();

// Here a beginning of a block
{
    SqlCommand getCategories = new SqlCommand("select Title from Movie.Category where SourceId = @sourceId", sqlConnection, sqlTransaction);
    getCategories.Parameters.AddWithValue("@sourceId", sourceId);
    using (SqlDataReader categoriesReader = getCategories.ExecuteReader(System.Data.CommandBehavior.SingleResult))
    {
        while (categoriesReader.Read())
        {
            existingCategories.Add(categoriesReader["Title"].ToString());
        }
    }
}

if (!existingCategories.Contains(newCategory))
{
    SqlCommand addCategory = new SqlCommand("insert into Movie.Category (SourceId, Title) values (@sourceId, @title)", sqlConnection, sqlTransaction);

    // Now try to make a mistake and write/copy-paste getCategories instead of addCategory. It will not compile.
    addCategory.Parameters.AddWithValue("@sourceId", sourceId);
    addCategory.Parameters.AddWithValue("@title", newCategory);
    addCategory.ExecuteNonQuery();
}

Теперь StyleCop отображает предупреждение каждый раз, когда блок следует за пустой строкой. С другой стороны, отсутствие пустой строки усложнит понимание кода.

// Something like:
Collection<string> existingCategories = new Collection<string>();
{
    // Code here
}

// can be understood as (is it easy to notice that semicolon is missing?):
Collection<string> existingCategories = new Collection<string>()
{
    // Code here
}

Так,

Естьчто-то не так в использовании фигурных скобок для создания блоков кода только для целей переменной области?

Если все в порядке, как сделать его более читабельным, не нарушая правил StyleCop?

Ответы на вопрос(5)

Ваш ответ на вопрос