хлеб, масло, бутер. Нужно переопределить оператор сложения, чтоб при сложении хлеба с маслом получался бутерброд и масса хлеба с маслом складывалась и присваивалась свойству масса в классе бутерброда.
Я переопределяю его в классе Сендвича, но возникает ошибка(фото). Что не так?
// хлеб
class Bread
{
public int Weight { get; set; } // масса
}
// масло
class Butter
{
public int Weight { get; set; } // масса
}
// бутерброд
class Sandwich
{
public static Sandwich operator +(Bread bread, Butter butter)
{
return new Sandwich() { Weight = bread.Weight + butter.Weight };
}
public int Weight { get; set; } // масса
}
class Program
{
static void Main(string[] args)
{
Bread bread = new Bread { Weight = 80 };
Butter butter = new Butter { Weight = 20 };
Sandwich sandwich = bread + butter;
Console.WriteLine(sandwich.Weight); // 100
}
}
Да, тогда это сработает, но мне просто интересно почему нельзя разместить это в Сендвиче, с точки зрения архитектуры это выглядело бы логичнее, мне кажется
A binary operator has two input parameters. In each case, at least one parameter must have type T or T? where T is the type that contains the operator declaration.
Это ты прикинь складываешь два инта а получаешь стринг Потому что ты переопределил его в классе стринг Получается какой жс😅 2+2="22"
В сэндвич можно переопределять минус :D
Ну так и сейчас можно так же сделать
Обсуждают сегодня