我是 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
传递给基类?
谢谢
最佳答案
你不能,因为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)
{
}
}
关于c# - 以方法作为参数调用基础构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137822/