Код IT
← Каталог

Рекомендации по разработке на C# — Конструкторы и инициализация

Фрагмент из «Рекомендации по разработке на C#»: Конструкторы и инициализация.

C# main.cs
// Фабричный метод для создания объекта с валидацией
public static Order CreateNew(Customer customer, DateTime orderDate)
{
    if (customer == null)
        throw new ArgumentNullException(nameof(customer));
    
    if (orderDate > DateTime.UtcNow)
        throw new ArgumentException("Order date cannot be in the future", nameof(orderDate));
    
    return new Order
    {
        Customer = customer,
        OrderDate = orderDate,
        Status = OrderStatus.Pending,
        Items = new List<OrderItem>()
    };
}
// Фабричный метод для создания объекта с валидацией
public static Order CreateNew(Customer customer, DateTime orderDate)
{
    if (customer == null)
        throw new ArgumentNullException(nameof(customer));
    
    if (orderDate > DateTime.UtcNow)
        throw new ArgumentException("Order date cannot be in the future", nameof(orderDate));
    
    return new Order
    {
        Customer = customer,
        OrderDate = orderDate,
        Status = OrderStatus.Pending,
        Items = new List<OrderItem>()
    };
}