Зачем нужен this параметр произвольного типа?

При указании this параметра можно указать произвольный тип, а не только тип класса. Зачем это сделано? Как это можно использовать?

struct A {
  void foo(this A self);   // OK
  void bar(this int self); // OK, but why?
};

Ответы (0 шт):