gpt4 book ai didi

c# 重写对象中的 base 可以为 null 吗?

转载 作者:行者123 更新时间:2023-11-30 15:36:14 24 4
gpt4 key购买 nike

希望有人能协助解决这个问题,这让我发疯。

我有一个继承自父对象的类,它覆盖了该对象的一些方法。其中一个覆盖中的相关代码如下所示(我已经删除了正常运行的代码):

    public override void Initialise()
{
if (Url != null)
{
_logger.LogInfo("Initialising for file " + Url);

// call the base Initialise method
try
{
base.Initialise();
}
catch (Exception ex)
{
_logger.LogError("Error on initialise : ", ex);
}
}
}

记录器对象写入我们的应用程序日志数据库。

当它第一次在代码中到达这一点时,它会在初始化时记录错误,并给我一个未设置为对象实例错误的对象引用。但是没有更多信息,没有内部异常,也没有行号。

我想知道是否有任何方法可以使 base 为空?这看起来很奇怪而且不太可能,但我无法解释为什么没有更多信息以及为什么代码拒绝了我从中获取更多信息的所有尝试。

它位于实时服务器上,因此我无法单步执行,也无法在测试服务器上重现该错误。如果有人对我如何获得有关其出错位置和出错方式的更多详细信息有任何想法,我们将不胜感激。

干杯,马特

最佳答案

您的问题的答案是否定的。 Base 不能为 null,因为它在子类之前被实例化(如果不调用特定的基类型构造函数,则默认在子类构造函数执行之前调用)。您的错误来自 base.Initialize() 方法。

关于c# 重写对象中的 base 可以为 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932176/

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