Итак, я разрабатываю веб-сайт электронной коммерции для своего дяди и использую C#. Я пытаюсь придумать лучший способ написать этот класс, чтобы я мог быстрее выполнять операции обновления, если мне нужно изменить данные одного пользователя. Я не знаю, займет ли этот конструктор копирования больше времени (с точки зрения памяти, создания нового объекта и т. д.) или наличия установщиков для каждого атрибута (здесь я компенсирую тот факт, что он изменчив, и конфиденциальные данные, которые я хочу, чтобы они были неизменяемыми) .
P.S. => Это всего лишь модель из 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