Данное условие почему-то возвращает false, не сравнивается ни с помощью equals, ни с помощью ==. Как следствие, неправильно работает linq. Условие срабатывает, если сравнивать соответствующие поля.
Product p1 = new Product("2", 2, 2, 2, default(DateTime));
Product p2 = new Product("2", 2, 2, 2, default(DateTime));
if (p1.Equals(p2))
{
Debug.WriteLine("p1 eq p2");
}
Сам класс:
public class Product
{
public Product(string name, double price, int count, double total, DateTime date)
{
if (name == string.Empty || price < 0 || count < 0 || total < 0 || date > DateTime.Now)
{
MessageBox.Show("Неверные параметры");
return;
}
this.Name = name;
this.Price = price;
this.Count = count;
this.Total = total;
this.Date = date;
}
public string Name { get; set; }
public double Price { get; set; }
public int Count { get; set; }
public double Total { get; set; }
public DateTime Date { get; set; }
}
Набросал:
public class Product
{
public Product(string name, double price, int count, double total, DateTime date)
{
if (name == string.Empty || price < 0 || count < 0 || total < 0 || date > DateTime.Now)
{
Console.WriteLine("неверные параметры");
return;
}
this.Name = name;
this.Price = price;
this.Count = count;
this.Total = total;
this.Date = date;
}
public string Name { get; set; }
public double Price { get; set; }
public int Count { get; set; }
public double Total { get; set; }
public DateTime Date { get; set; }
public override bool Equals(object obj)
{
if (obj == null || this.GetType() != obj.GetType())
return false;
Product p = (Product)obj;
return (Name == p.Name) && (Price == p.Price) && (Count == p.Count) && (Total == p.Total) && (Date == p.Date);
}
public override int GetHashCode()
{
return (int)Price ^ (int)Total ^ Count;
}
}
правда метод GetHashCode реализует лишь числовые поля, кроме строки и даты. Но вы уже сами можете перекрутить их как вам угодно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сам интервал мы меняем chart1ChartAreas[0]
Страница 50 книги "C# для начинающих" Мартина ДрейераВ код необходимо добавить метод
Доброго, столкнулся с ошибкой: Для поставщика ADONET с неизменяемым именем "Oracle
Пытаюсь собрать проект на линуксе, написанном на C#, компилятор ругается на ошибку: /usr/lib/mono/45/Microsoft