2016-12-14 67 views
2

我是C#初学者,不能找出如何调用从一个子类内的基本构造:调用基类的构造

基类:

public class LookupScript 
{ 
    protected Func<IEnumerable> getItems; 

    protected LookupScript() 
    { 
     // 
    } 

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

我的派生类:

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

如何将myMethod传递给基类?

谢谢

+1

顺便说一句,这是值得呈现[MCVE]中的问题 - 在这里,'lookupParams'不是招”没有被声明,似乎是不相关的,同样是'Check.NotNull',并且无参数的构造函数是不相关的。一个完整的类只包含参数化的构造函数会更好。 –

回答

7

你不能,因为myMethod是实例方法,你不能访问任何与构造函数初始化中所创建的实例。这工作虽然:

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

    private static List<string> MyMethod() 
    { 
     return null; 
    } 
} 

一个使用方法组转换创建Func<List<string>>,将调用MyMethod

或者,如果你不需要为别的方法,只是使用lambda表达式:

public class PresenceLookup : LookupScript 
{ 
    public PresenceLookup() : base(() => null) 
    { 
    } 
}