Иногда я сталкиваюсь со случаями, когда мне приходится присоединять метод к делегату, но подпись не совпадает, например, пытаться присоединить abc вниз к некоему делегату с параметром строки «hi».
public class test
{
//...
public void abc(int i, string x)
{
//Do Something
}
//...
}
public class test2
{
somedelegate x;
//...
public test2()
{
//Do Something
test y = new test();
x += y.abc(,"hi");
}
delegate void somedelegate(int i);
}
Я могу обойти это, создав другого делегата с правильной подписью, а затем прикрепив его, но это кажется излишне сложным. Можете ли вы сделать что-то подобное в C #? Спасибо.
РЕДАКТИРОВАТЬ: я думаю, что самое близкое к тому, что я хотел достичь, это:
x += (int i) => abc(i, "hi");