1. must + have done:用于肯定句,表示推测,意为“一定(已经)……”。
2. can + have done:用于否定句或疑问句,表示推测,意为“可能(已经)……”。
3. could + have done:可用于肯定句、否定句或疑问句,表示推测、责备或遗憾等,意为“可能……”、“本来可以……”、“本来应该……”等。
4. should [ought to] + have done:可用于肯定句、否定句或疑问句,表示责备或遗憾等,意为“本来应该……”。
5. need + have done:用于否定句或疑问句,用于否定时意为“本来不必”,用于疑问句时意为“有必要……吗”。
6. may + have done:用于肯定句或否定句,表示推测,意为“可能(已经)……”。
7. might + have done:用于肯定句或否定句,表示推测,意为“可能(已经)……(此时 might 可换为 may);另外还可以表示过来可能发生的事结果未发生,意为“本来会……”(此时 might 不能换为 may)。
用法举例:
He can’t have left so soon. 他不可能走得这么早。
I should have thought of it. 我本应想到这一点的。
You needn’t have mentioned it. 你没有必要提及此事的。
You must have mistaken my intention. 你一定是误会了我的意图。
I might have come to a wrong conclusion. 我或许得出了错误的结论。
You could have helped me—why did you just sit and watch? 你本可帮助我的,为什么只坐在一旁瞧着?