gpt4 book ai didi

c# - 从基类构造函数中调用虚方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:03:47 33 4
gpt4 key购买 nike

在 C++ 中,从基类 ctor 中调用虚方法永远不会调用派生覆盖。

在 Java 中是这样。

C# 怎么样? (没有安装visual studio的ATM)

最佳答案

是的,在 C# 中确实如此 - 即使在构造对象时,该对象也是其“最终类型”。

就像在 Java 中一样,这是一个坏主意,应尽可能避免,因为您可能正在调用在尚未为该对象完全初始化的继承“级别”上实现的方法。

Java 和 C# 执行顺序的一个区别是,在 C# 中,带有初始化器的实例变量,如下所示:

private readonly DateTime creationTime = DateTime.UtcNow;

...并在基类构造函数执行之前初始化,而在 Java 中,它们在子类构造函数的主体之前有效地执行,父类(super class)之后构造函数执行。

关于c# - 从基类构造函数中调用虚方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172485/

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