Здравствуйте, я забыл как объявлять callback'и, приведите пожалуйста пример callback'а, который возвращал как нибудь String и TcpClient, и собственно всё выглядело что-то типа ( а организация самого callback, была вынесена в другой class) ...
Service.onRecieve += new onRecieveDelegate(onRecieve)
private void onRecieve(TcpClient clnt, String str)
{
Console.WriteLine("User send : " + str);
}
Я в интернете смотрел уже, не спорю, там много статей по этой теме, но все разные и не одна не похожа, на то как я раньше делал :(
В программировании Callback - это передача исполняемого кода в качестве одного из параметров другого кода. Для этой цели C# имеет делегаты.
public class MyTcpClient
{
private TcpClient _clnt;
public MyTcpClient()
{
_clnt = new TcpClient();
}
public void DoWork(Action<TcpClient, string> callBack)
{
// Делаем что-то...
// Вызываем CallBack
callBack?.Invoke(_clnt, "Некая строка");
}
}
static void Main(string[] args)
{
var client = new MyTcpClient();
client.DoWork((tcpClient, s) =>
{
Console.WriteLine($"Получена строка {s}");
});
}
public void RecieveDelegate(object, TcpClient, string);
public event RecieveDelegateChanged;
public void Constructor()
{
RecieveDelegateChanged += (client, str) =>
{
/* Делаем что-то */
};
}
public void RaiseReciveDelegate(TcpClient client, string message)
{
RecieveDelegateChanged?.Invoke(this, client, message);
}
Продвижение своими сайтами как стратегия роста и независимости