would/should+have+过去分词,这是虚拟语气的一种用法。would have done表示对过去事情的假设,意思是“本来会做”。
have done的用法
1、should/ought to have done的含义.“should/ought to have+过去分词”表示“过去应该做谋事却没有做”; “should not/ought not to have+过去分词”表示“作了不应该做的事”. 含有责备或遗憾的意思。
例如:You shouldn’t /oughtn’t to have come here alone at such a late hour.你这么晚的时候本不一该一个人来这里的.(实际是一个人来的)
She should/ought to have gone there alone.她本该一个人去那里的.(实际上不是)
2、would have done的含义.would have done“本愿意做某事”,非虚拟语气时,就是would 情态动词加动词原形,have done 就是现在完成时,所以和起来 就是将来完成时的用法,过去将来完成时表示在过去看来将来某时会已经完成的动作。
例如:She said she’d have finished her exams by then.她说那时她会已经考完试了。
He knew he arrived she would have gone home.他知道他到时她会已经回家了。
3、must have done的含义.“must have+过去分词”表示对过去的推测,意思是“一定已经,想必已经,准是已经….”,只用于肯定句中.例如:
He must have been drinking beer.他肯定一直喝啤酒来着。
若要表示否定,要用“can’t/couldn’t+ have+过去分词”,意思是“不可能”:
The money can’t have been lost there.钱不可能是在那儿丢的。
should have done“本应该做某事”
might have done“可能做过某事”
could have done“本可以做到某事”
would have done“本愿意做某事”