前文中,我们了解到,might, may, could, can, will, would, should, ought to, must等9个情态动词,可以表示推测性意义,其后可以接动词的一般形式、进行体形式和完成体形式。其实,“情态动词+完成体”除了具有推测性含义,还可以表示虚拟意义。具体而言:
1)must + have done:用于肯定句,表示推测,意为“一定(已经)……”。
You must have finished the work. 你一定已经完成工作了。
2)can + have done:用于否定句或疑问句,表示推测,意为“可能(已经)……”。
He can’t have left so soon. 他不可能走得这么早。
3)could + have done:可用于肯定句、否定句或疑问句,表示推测、责备或遗憾等,意为“可能……”、“本来可以……”、“本来应该……”等。
You could have finished it, but you failed. 你本可以完成,但你失败了。
4)should [ought to] + have done:可用于肯定句、否定句或疑问句,表示责备或遗憾等,意为“本来应该……”。
You should have helped me, but you just sat and watched there.
你本应该帮我的,但你只是在那坐着看。
5)need + have done:用于否定句或疑问句,用于否定时意为“本来不必”,用于疑问句时意为“有必要……吗”。
You needn’t have helped me because I could make it.
你本没必要帮我的,我自己可以做到。
6)may + have done:用于肯定句或否定句,表示推测,意为“可能(已经)……”。
She may have seen this film. 她可能已经看过这部电影了。
7)might + have done:用于肯定句或否定句,表示推测,意为“可能(已经)……(此时might可换为 may);
She may/ might have seen this film. 她可能已经看过这部电影了。
另外还可以表示过去可能发生的事结果未发生,意为“本来会……”(此时 might不能换为 may)。
Tom might have given you more help, even though he was busy.
尽管汤姆很忙,他或许也会多给你一些帮助。