Реактивные расширения для разработчиков .NET - PullRequest
0 голосов
/ 06 декабря 2018

Я нашел некоторую информацию об этом, но у меня есть несколько путаницы по этому поводу.Поэтому, когда нам нужно использовать этот RX.NET.

Какое значение имеет использование этих элементов?Когда мне нужно это использовать?

1 Ответ

0 голосов
/ 28 декабря 2018

Как и в любом наборе инструментов, он может формировать подход к решению проблем.Учитывая молоток, все ваши проблемы могут стать гвоздями.То же самое и с Rx.NET.Это дает вам новый подход.Решить, использовать ли этот подход для решения конкретной проблемы, зависит от вас, и, как и для любого инструмента или технологии, есть свои плюсы и минусы.Вам нужно будет учиться и приобретать опыт, чтобы составить такие сложные суждения для себя.

Для начала, Rx.NET позволяет вам развивать подход программирования «реактивно».Это сродни функциональному программированию в том смысле, что вы объявляете поведение составленным из базового поведения.Rx.NET позволяет вам определять функции над потоками, чтобы давать новые потоки.Этот мощный метод может быть применен практически к любой проблеме, которую вы можете себе представить.

Например, программа, использующая Linq и Rx.NET для рисования движений мыши в виде точек на экране внутри ограничительной рамки, хотела бы что-то вроде:

mouseMovements.Where(box.Contains(m)).Subscribe(DrawPoint)

где mouseMovements будет вашим событием мыши как наблюдаемое

Вы можете объявить

myPointsInBox = mouseMovements.Where(box.Contains(m))

как свою собственную наблюдаемую и иметь несколькоподписчики:

myPointsInBox.Subscribe(DrawPoint)
myPointsInBox.Subscribe(ConnectWithLines)
myPointsInBox.Subscribe(UpdatePointCounter)

вы можете создавать потоки из потоков

var everyThousandthPoint= myPointsInBox.Buffer(….).Select(…)

, а затем что-то делать с ними

   everyThousandthPoint.Subscribe(FlashPointCounter)

Вы поймете идею.

...