У меня была мысль, похожая на то, что Гейб сказал . Кажется, по крайней мере теоретически возможно, что кто-то решит использовать struct
, чтобы вести себя как метод, инкапсулируя локальные переменные этого метода в качестве полей экземпляра:
struct Evens
{
int _current;
public IEnumerable<int> Go()
{
while (true)
{
yield return _current;
_current += 2;
}
}
}
Я имею в виду, это странно, очевидно. Это напоминает мне идеи, с которыми я сталкивался в прошлом, когда разработчики придумали все более странные способы вызова методов, такие как упаковка параметров метода в объект и позволить этому объекту вызывать метод - в некотором смысле, возвращаясь назад. Я бы сказал, что это примерно так.
Я не говорю, что это было бы мудрым делом, но это, по крайней мере, способ использования this
в описываемом вами способе, который может быть преднамеренным и технически правильное поведение.