Загрузка...

Помогите понять

Тема в разделе C# создана пользователем Сперматолог 12 сен 2022. 213 просмотров

  1. Сперматолог
    Сперматолог Автор темы 12 сен 2022 Пава пепе 238 25 дек 2020
    Суть программы в описании машин, их характеристик и их сравнения.

    namespace Cars.Models
    {
    class Car
    {
    public string? Mark { get; set; }
    public int Cost { get; set; }
    public int YearOfProd { get; set; }
    public int Weight { get; set; }
    public Color Color { get; set; }
    public int Distance { get; set; }


    public override bool Equals(object? obj)
    {
    return obj is Car car &&
    Mark == car.Mark &&
    Cost == car.Cost &&
    YearOfProd == car.YearOfProd &&
    Weight == car.Weight &&
    Color == car.Color;

    Этот кусок должен сравнивать две модели машин(в другом классе) и возращать бул значение, всё норм.


    Car Renault = new Car();

    Renault.Mark = "Renault Traffic";
    Renault.YearOfProd = 2000;
    Renault.Cost = 14000;
    Renault.Weight = 1500;
    Renault.Color = Color.Silver;


    Car Renault2 = new Car();

    Renault.Mark = "Renault Traffic";
    Renault.YearOfProd = 2000;
    Renault.Cost = 14000;
    Renault.Weight = 1500;
    Renault.Color = Color.Silver;

    А вот соответственно одинаковые машины, полностью, вывод такой:

    Console.WriteLine(Toyota.ToString());
    Console.WriteLine(Renault.ToString());
    Console.WriteLine(Renault == Renault2);

    При этом всём консось выводит ложь. Почему???
    [IMG]
     
  2. DarKRs
    DarKRs 13 сен 2022 Ура, у меня наконец есть статус 1232 15 июл 2022
    Сперматолог, Возможно у класса Color не переопределил Equals
    Проверь в дебаге, что возвращает Color == car.Color
     
    1. Сперматолог Автор темы
      DarKRs, уже решил
      Новый обьект Renault2 я создал, а вот значения присвоил Renault(по второму разу, получается)
    2. 1bn1k
      Сперматолог, Учи тему про указатели(ссылки на объекты), это абсолютно 2 разныъ объекта хоть и похожи между собой)
  3. 1bn1k
    1bn1k 4 окт 2022 Когда могу - тогда онлайн =) 23 22 сен 2019
    Тут нужно не через "==" а через .equals()
     
  4. Trophieno
    Trophieno 5 окт 2022 Заблокирован(а) 165 22 авг 2022
    чекни в дебаге что возвращает
     
Загрузка...
Top