gpt4 book ai didi

c# - 如何在 C# 中初始化派生类?

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:06 24 4
gpt4 key购买 nike

我有一个基类:

public class Processor
{
ParsedString _parsedMessage;
Utilizador _utilizador;

public Processor(ParsedString parsedMessage, Utilizador utilizador)
{
_parsedMessage = parsedMessage;
_utilizador = utilizador;

}

public virtual String Execute()
{
string result = null;
return result;
}

}

然后是派生类

public  class RegistarAnuncio:Processor
{
public RegistarAnuncio(ParsedString parsedMessage, Utilizador utilizador)
{
}
}

编译器报错:

错误 9 方法“Processor”没有重载采用“0”参数 C:\Documents and Settings\user\My Documents\projectos\Licenciatura\Prototipo\Agrinfo\AgrinfoLib\Interfaces\SMS\Processors\RegistarAnuncio.cs 11 16农业信息库

我在谷歌上搜索了 C# 引用,但我没有找到人们使用参数初始化基类方法的代码示例,任何人都可以给我帮助。

问候,

最佳答案

您想使用此语法来调用基本构造函数:

public class RegistarAnuncio : Processor
{
public RegistarAnuncio(ParsedString parsedMessage, Utilizador utilizador)
: base (parsedMessage, utilizador)
{
}
}

我有一个 article on constructors其中更详细。非常简短:

  • 您可以使用 base(arguments)this(arguments) - 第一个版本调用基类构造函数,第二个版本调用同一类中的另一个构造函数<
  • 如果你不指定任何东西,就像有 base()
  • 您不能使构造函数循环调用(即一个构造函数调用另一个调用第一个的构造函数)
  • 您只能链接到一个构造函数(但那个构造函数可以链接到另一个构造函数)
  • 构造函数调用紧接在构造函数主体执行之前发生,但任何实例变量初始化器之后

this”的一个常见用途是使用默认值。例如:

const string DefaultFirstValue = "fred";
const int DefaultSecondValue = 20;

public Foo(string firstValue, int secondValue)
{
this.firstValue = firstValue;
this.secondValue = secondValue;
}

public Foo(string firstValue) : this(firstValue, DefaultSecondValue)
{
}

public Foo(int secondValue) : this(DefaultFirstValue, secondValue)
{
}

public Foo() : this(DefaultFirstValue, DefaultSecondValue)
{
}

对于 C# 4,这将不太有用,因为将有可选参数和命名参数。当然,您可能仍希望为不支持这些功能的语言提供重载。

关于c# - 如何在 C# 中初始化派生类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045662/

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