Я не особо знаком с SignalR, но вот что это выглядит как происходит, работая изнутри
String.Format("{0}: {1}" + Environment.NewLine, name, message)
Замены переменных в строку. name
займет место {0}, а message
вместо {1}. Это было бы так же, как new String(name + ": " + message + Environment.NewLine)
RichTextBoxConsole.AppendText(String.Format(...))
Дописывает отформатированную строку в RichTextBox
(Action)(() => RichTextBoxConsole.AppendText(...))
Объявляет лямбда-выражения, который не принимает никаких параметров и вызывает функцию AppendText
.
(name, message) => this.Invoke((Action)(...))
Объявляет вторую функцию лямбда, принимая 2 параметра (name
и message
) и вызвать Invoke
функцию с предыдущим лямбда-выражения. Я предполагаю, что Invoke
фактически выполнит выражение лямбда.
HubProxy.On<string, string>("AddMessage", (name, message) => ...);
Опять же, не знаком с SignalR, но мои образованные бы предположить, что это прикрепление предыдущего выражения лямбды на AddMessage
событие, таким образом, что всякий раз, когда AddMessage
происходит, ваша функция лямбды будет выполнять, в результате чего имени и сообщение из события AddMessage
, которое должно быть добавлено в ящик RichText через функцию Invoke
(возможно, чтобы элемент пользовательского интерфейса был изменен на соответствующую нить?)
В любом случае, надеюсь, это поможет вам разобрать линию. Не могу помочь вам конвертировать его, хотя>. <
(Если я сказал что-то неправильно, то пожалуйста, дайте мне знать, и я буду удалять или корректировать заявления обижая)
спасибо! Сегодня я чему-то научился! –