Я разрабатываю веб-сайт электронной коммерции для своего дяди, используя C#. Я пытаюсь придумать лучший способ написать этот класс, чтобы я мог быстрее выполнять операции обновления, если мне нужно изменить данные пользователя.
Я не знаю, будет ли эта копия конструктору потребуется больше времени (с точки зрения памяти, создания нового объекта и т. д.) или наличия установщиков для каждого атрибута (здесь я жертвую тем фактом, что он изменяем, и конфиденциальными данными, которые я хочу сделать неизменяемыми).PS: это только модель из 20 штук. Я также использую базу данных.
Если есть лучший способ, более эффективный, я бы с удовольствием услышал от вас, ребята!
Раньше я писал код в основном на Java, но мне это надоело, и я перешел на C# (уровень от начального до среднего). Мне нужны советы и подсказки, которые помогут более эффективно использовать язык.
using System.ComponentModel.DataAnnotations;
using E_Commerce_BackEnd.Models.OrderRelatedModels;
namespace E_Commerce_BackEnd.Models.UserRelatedModels;
public class DetaliiFactura
{
// Attributes
public int IdDetaliu { get; init; }
[StringLength(12)]
public string? Cif { get; init; }
public DateTime DataEmitereFactura { get; init; }
// Foreign keys
public virtual Adrese Adrese { get; } = null!;
public int IdAdresa { get; init; }
public virtual ICollection DComenzi { get; }
public DetaliiFactura(string? cif, DateTime dataEmitereFactura, Adrese adrese, int idAdresa, ICollection? comenzi)
{
Cif = cif;
DataEmitereFactura = dataEmitereFactura;
Adrese = adrese;
IdAdresa = idAdresa;
if (comenzi != null)
{
DComenzi = new HashSet(comenzi);
}
DComenzi = new HashSet();
}
public DetaliiFactura(DetaliiFactura other)
{
if (other == null)
{
throw new ArgumentNullException(nameof(other));
}
IdDetaliu = other.IdDetaliu;
Cif = other.Cif;
DataEmitereFactura = other.DataEmitereFactura;
Adrese = other.Adrese;
IdAdresa = other.IdAdresa;
DComenzi = new HashSet(other.DComenzi);
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... than-i-did