gpt4 book ai didi

c# - 以方法作为参数调用基础构造函数

转载 作者:行者123 更新时间:2023-11-30 19:54:37 25 4
gpt4 key购买 nike

我是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com