Немного сбивает с толку архитектурную проблему.
У меня есть форма с именем MyForm
, и в ней есть текстовое поле, в которое я хочу войти. Есть метод Output(string, LogType)
, который делает это. LogType - это перечисление.
У меня есть класс Manager
, который при создании порождает поток. Я хочу, чтобы этот поток добавлялся в текстовое поле.
Я хочу сделать это наиболее абстрактно, насколько это возможно.
В идеале это должно включать передачу ссылки на метод Invoke
вс делегатом, указывающим на мой метод Log(string)
, такой, что классу Manager просто передается объект, и он может выполнять object("hello")
Однако я не совсем уверен, возможно ли это. Я был привязан к делегатам, лямбдам и действиям, пытаясь понять это.
Это было бы элегантно, поскольку мне не нужно было бы добавлять какие-либо дополнительные методы к моей форме, писать оболочку журнала или что-то еще. Возможно ли это?
Эдито: Я придумал это, я мог бы быть близко:
new Action<string, LogType>((s,l) => Invoke(new Action<string, LogType>((t,m) => Output(t,m))));
тогда мне нужно передать s, l вт, м
new Action<string, LogType>((s,l) => Invoke(new Action<string, LogType>((t,m) => Output(t,m))(s,l)));
, а затем все идет не так
Кажется, немного затянуто, хотя ...