По-видимому, вы можете изменить значение this
из любой точки вашей структуры (но не в классах):
struct Point
{
public Point(int x, int y)
{
this = new Point();
X = x; Y = y;
}
int X; int Y;
}
Я не видел этого раньше и никогда не нуждался в нем. Зачем это когда-либо хотеть? Эрик Липперт напоминает нам, что функция должна быть оправдана для реализации. Какой большой пример использования может это оправдать? Существуют ли какие-либо сценарии, где это бесценно? Я не смог найти на нем никакой документации 1.
Кроме того, для вызывающих конструкторов уже есть более известный альтернативный синтаксис, поэтому эта функция иногда избыточна:
public Point(int x, int y)
: this()
{
X = x; Y = y;
}
Я нашел эту функцию в примере в Jeffrey Richter CLR через С# 4-е издание.
1) По-видимому, он находится в спецификации С#.