Задать вопрос
Viji
@Viji
DevOps Engineer

Чем отличаются эти два типа записи?

есть 2 варианта кода

1.
using Amazon.DynamoDBv2.DataModel;
using Amazon.DynamoDBv2.DocumentModel;


var queryConfig = new DynamoDBOperationConfig();

queryConfig.QueryFilter = new List<ScanCondition>();

var ScanCondition = new ScanCondition(nameof(Column.GoodsId), ScanOperator.Equal, GoodsId);

queryConfig.QueryFilter.Add(ScanCondition);


2.
using Amazon.DynamoDBv2.DataModel;
using Amazon.DynamoDBv2.DocumentModel;
   
var queryConfig = new DynamoDBOperationConfig
{
    QueryFilter = new List<ScanCondition>
        {
            new ScanCondition ( nameof(Column.GoodsId), ScanOperator.Equal, GoodsId ),
        }
};

Какой из них является более правильный с точки зрения синтаксиса и имеют ли эти 2 паттерна свои названия?
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
Эти две записи полностью эквивалентны, в чём можно убедиться через sharplab, выбрал декомпиляцию в более низкоуровневый C#.
Во втором случае используется Object Initializer синтаксис.
Второй более идиоматичный и ИМХО более читабельный.
Ответ написан
Комментировать
freeExec
@freeExec
Участник OpenStreetMap
Неправильный с точки зрения синтаксиса код не компилируется, а значит не имеет права на жизнь, поэтому и обсуждать его не имело бы смысл.
Отличают эти записи способом записи добавления элементов в массивы при инициализации, как ни странно.
Никакой программной разницы в них нет, они всё равно превратиться в методы .Add()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы