Что делает оператор "каскадного доступа к членам" (..)?

В документации оператора сказано следующее:

x..y- каскадный доступ к членам. Приводит к x, что полезно для объединения вызовов методов.

Что это значит? Как это используется? Поиск "каскадного доступа к членам" только значимо вернул мне этот отрывок из документации Beef.

1 ответ

Решение

Когда он говорит, что "приводит к x", это означает, что после любого разрешения любых вызовов y, что согласуется с тем, как нулевой условный оператор (?.) работает. Это означает, что вместо того, чтобы делать что-то вроде этого:

let s = scope String();
s.AppendF("2 + 3 = {}", 2+3);
Console.WriteLine(s);

...вы можете использовать String()..AppendF(...) вместо того String().AppendF(...), И так как это выражение будет решать (опять же, после того, какAppendF называется) слева от оператора, что совпадает с s, все это можно поместить в WriteLine вызов:

Console.WriteLine(scope String()..AppendF("2 + 3 = {}.", 2+3));

А бит "цепочки" относится к использованию нескольких каскадных операторов-членов в строке для последовательного вызова элементов одного и того же объекта в одном выражении. Например, вы можете сделать это:

Console.WriteLine(scope String()..AppendF("Two + three = {}.", 2+3)..ToUpper());

...вместо этого:

let s = scope String();
s.AppendF("Two + three = {}.", 2+3);
s.ToUpper();
Console.WriteLine(s);
Другие вопросы по тегам