我怀疑我不知道 C# 中什么是编译时以及什么是运行时。我从多态性(方法重载,方法覆盖)中得到这个词,你能解释一下吗?谢谢
最佳答案
方法重载是在编译时确定的。这意味着编译器确切地知道当您调用重载方法时将执行哪些代码。它可以生成对代码的直接调用,而无需添加代码运行时必须执行的任何检查。
方法重写是在运行时确定的。当您调用虚拟方法时,要调用的实际方法是根据对象的实际类型确定的,并且必须在调用完成时进行此检查。由于引用可能引用不同类型的对象,因此编译器无法根据引用类型确定将调用哪个方法,因此必须添加代码来查找从哪个类获取该方法。
关于c# - 编译时和运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1944725/