У меня проблема. Я знаю только, как использовать action и func, но проблема в том, что мне нужно поместить метод в такой конструктор.

Reader read = new Reader(1000, cki, method);

Но проблема в том, что метод требует такого ввода.

public static void method(int Integer)

Что мне делать в этой ситуации?

c#
0
Hui 3 Мар 2015 в 15:51

3 ответа

Лучший ответ

Вы можете использовать Action<int> для параметра конструктора. Тип возврата Action - void, а общий аргумент - это тип параметра. Таким образом, он соответствует вашему методу, который принимает {{X3 }} и возвращает void.

2
Selman Genç 3 Мар 2015 в 12:54

Кажется, вы ищете Action<int> и вызываете его из конструктора, как показано ниже?

using System;

public class Program
{
    public static void Main()
    {
        Sample s = new Sample((i) => {Console.WriteLine(i);});
    }
}

public class Sample
{
    public Sample(Action<int> method)
    {
        method(5);
    }
}
0
Jenish Rabadiya 3 Мар 2015 в 13:11

Вы не можете использовать метод, но можете использовать действие

public Reader(int first, object cki, Action method)
{
    //ctor code here
    method.Invoke();
}

Чем использовать:

var reader = new Reader(1000, cki, () => SomeMethod(123));
0
Darek 3 Мар 2015 в 13:00