хлеб, масло, бутер. Нужно переопределить оператор сложения, чтоб при сложении хлеба с маслом получался бутерброд и масса хлеба с маслом складывалась и присваивалась свойству масса в классе бутерброда.
                  
                  
                  Я переопределяю его в классе Сендвича, но возникает ошибка(фото). Что не так?
                  
                  
                  // хлеб
                  
                  
                  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
Ну так и сейчас можно так же сделать
Обсуждают сегодня