Ошибка преобразования при передаче делегата - 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы