C # множественная отправка на основе аргумента? - PullRequest
0 голосов
/ 11 ноября 2018

(я не ищу полный ответ) По сути, наше задание состояло в том, чтобы реализовать несколько различных типов чисел (целые, рациональные, сложные, вещественные) с использованием шаблона посетителя, такого кода, как этот

number[] N = {new Frac(3,5),new Int(1),new Real(3.14159)};
number sum = new Int(0);
foreach(number x in N) sum = sum.add(x);

будет работать.Единственный намек, который нам дали, заключался в том, что одним из способов было создание 2D-массива, чтобы каким-то образом использовать его для отправки функций?Однако, учитывая эту информацию, я все еще не уверен, как поступить.Честно говоря, было бы просто приятно увидеть пример того, как выглядит множественная отправка с одним аргументом.

public class Int : Inumber
{
  public int val;
  public Int(int v) {val=v;}
  public Int dispatch(Int x){return Int(x.val + this.val);}
  public Real dispatch(Real x){return Real(x.val + this.val);}

  public number add(Inumber x)  { x.dispatch(this) }
}

Я думаю, что это произойдет как-то так, но это все равно не работает.Любые комментарии будут приветствоваться

...