Ошибка преобразования при передаче делегата - C#
Формулировка задачи:
Доброго времени суток. Разбираюсь с таким понятием, как делегаты, возник вопрос.
В качестве аргумента функции мы можем указать объект делегата, и при вызове передать в функцию другую функцию, удовлетворяющую контракту делегата.
Если я создаю делегат типа void , то при вызове функции компилятор говорит что "невозможно преобразовать тип void в тип делегата"
Это я что-то неправильно написал, или в принципе мы не можем в качестве формального параметра использовать делегат, возвращающий void
Листинг программы
- public delegate void TestVoidDelegate(int obj1, int obj2, ref int obj3);
- public class test
- {
- public TestVoidDelegate testvoiddelegate;
- public void Test1(int i, int j, ref int k)
- {
- k = i+j;
- Console.WriteLine(k);
- }
- public void Test2(TestVoidDelegate i)
- {
- }
- }
- public class Test
- {
- public static void Main()
- {
- int y=4;
- test t = new test();
- t.testvoiddelegate = new TestVoidDelegate(t.Test1);
- t.testvoiddelegate(1,2, ref y);
- t.Test2(t.testvoiddelegate(1,2,ref y));
- }
- }
Решение задачи: «Ошибка преобразования при передаче делегата»
textual
Листинг программы
- using System;
- public delegate void TestVoidDelegate(int obj1, int obj2, ref int obj3);
- public class test
- {
- public TestVoidDelegate testvoiddelegate;
- public void Test1(int i, int j, ref int k)
- {
- k = i+j;
- Console.WriteLine(k);
- }
- public void Test2(TestVoidDelegate i)
- {
- int y=4;
- i(5,6, ref y);
- }
- }
- public class Test
- {
- public static void Main()
- {
- int y=4;
- test t = new test();
- t.testvoiddelegate = new TestVoidDelegate(t.Test1);
- t.testvoiddelegate(1,2, ref y);
- t.Test2(t.testvoiddelegate);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д