使用方法作为参数调用基础构造函数

myr*_*yro 2 .net c#

我是C#的初学者,无法从子类中找到如何调用基础构造函数:

基类:

public class LookupScript
{
    protected Func<IEnumerable> getItems;

    protected LookupScript()
    {
        //
    }

    public LookupScript(Func<IEnumerable> getItems) : this()
    {
        Check.NotNull(getItems, "getItems");
        this.getItems = getItems;
    }
Run Code Online (Sandbox Code Playgroud)

我的派生类:

public class PresenceLookup : LookupScript
{
    public PresenceLookup() :base(??)
    {
     //
    }
    List<string> myMethod()
    {
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

我怎样才能传递myMethod到基类?

谢谢

Jon*_*eet 7

您不能像myMethod实例方法一样,并且无法访问与构造函数初始值设定项中创建的实例有关的任何内容.这会工作:

public class PresenceLookup : LookupScript
{
    public PresenceLookup() : base(MyMethod)
    {
    }

    private static List<string> MyMethod()
    {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

这使用方法组转换来创建Func<List<string>>将调用的方法MyMethod.

或者,如果您不需要其他任何方法,只需使用lambda表达式:

public class PresenceLookup : LookupScript
{
    public PresenceLookup() : base(() => null)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)