【发布时间】:2010-12-29 00:28:25
【问题描述】:
我怀疑我不知道 C# 中的编译时间和运行时间是什么。我从多态性(方法重载,方法覆盖)中得到这个词,你能解释一下吗?谢谢
【问题讨论】:
-
我猜谷歌会提供更好的帮助。
我怀疑我不知道 C# 中的编译时间和运行时间是什么。我从多态性(方法重载,方法覆盖)中得到这个词,你能解释一下吗?谢谢
【问题讨论】:
计算机服从命令时产生的内部动作,即在“运行时”。
编译时间是指编译器执行的操作(“编译时操作”),源代码必须满足的编程语言要求才能成功编译(“编译时要求”),或可以在编译时推断的程序的属性。
参考:- http://www.cs.bham.ac.uk/research/projects/poplog/primer/node35.html http://en.wikipedia.org/wiki/Compile_time
【讨论】:
方法重载是在编译时确定的。这意味着编译器确切地知道当您调用重载方法时将执行哪些代码。它可以直接调用代码,而无需添加代码运行时必须执行的任何检查。
方法覆盖是在运行时确定的。当您调用虚方法时,要调用的实际方法由对象的实际类型确定,并且必须在调用完成时进行此检查。由于引用可能会引用不同类型的对象,因此编译器无法从引用类型中确定调用哪个方法,因此必须添加代码来查找从哪个类中获取方法。
【讨论】:
当您在 VS IDE 中按 F6 时,您正在编译。消耗的时间是编译时间。
在 VS IDE 中按 F5 或 Ctrl+F5 时,您正在运行。消耗的时间是运行时间。
【讨论】: