哪位能否解释下could have done与would have done的用法区别?哪位高手能否具体解释下could have done与would have done的用法区别?

问题描述:

哪位能否解释下could have done与would have done的用法区别?
哪位高手能否具体解释下could have done与would have done的用法区别?

其实很简单 ,看他们的原型就好。could的原型是can,would的原型是will

could have done(本可以做某事却没做)
would have done(本想做某事却没做)
“could+have+done”是虚拟语气,表示对过去事情的假设,意思是本来能够做某事而没有做。
He could have passed the exam, but he was too careless. 本来他能够通过考试,但是他太粗心。
“would+have+done”虚拟语气,表示对过去事情的假设,意思是“本来会做”。
1. I would have told you all about the boy's story, but you didn't ask me. 我本来会告诉你这个小男孩的故事,但是你没有问我。
2. Without your help, I wouldn't have achieved so much. 没有你的帮助,我是不会取得如此大的成绩。

看具体情景。
could have done主要表示的是能力,过去本来能够做某事而没有做。
I could have told you on time that day.我那天本来能够及时告诉你的。
would have done,是过去将来完成时,主要表示的是过去对将来的虚拟。
I would have told you if i had been here that day.如果那天我在的话,我就会告诉你了。

意思差不多,都是本该做的但是没有做!
语气上有所差别,would have done比could have done语气更弱一些。

根据词语表面意思理解
could来自于can表示能够 could have done 就是说“本能够做到什么”(隐含当时没能达到这个能力)
would来自于will表示推测 would have done 是说“本将会怎么做”(隐含当时没有这个意愿)
前者侧重说能力,后者侧重说意愿.
本来有能力做到的不一定是意愿做的,本来意愿做到的一定是本来也有能力做到的.这就是细微差别吧.当然是我自己的理解.
举两个例子:
1、“这道题错的真可惜,考试时候本来可以做对的.”用could have done 因为这里想表达当初可以做对这一“能力”;而不存在“当时没有做对的意愿”
2、“我要是当时把门锁上了,家里就不会失窃了.”用would have done 因为这里表达当初可以把门锁上的这一“意愿”,作者在暗示后悔自己当时没想着去锁门而不是“没能力锁门”.
当然具体意思差别不大,