作业帮 > 英语 > 作业

虚拟语气里的would have done为什么是have,为什么要把完成时加在里面?

来源:学生作业帮 编辑:作业帮 分类:英语作业 时间:2024/05/17 03:44:15
虚拟语气里的would have done为什么是have,为什么要把完成时加在里面?
虽说这是虚拟句的语法规则,但也不必死记,试着用中文来理解时态搭配上的逻辑.

If I had done sth, I would have done sth. 这种虚拟句,中文的意思就是:
如果我【当时】做了XX,我肯定就【已经】YY了.
例如: If I had known, I would have told you. 如果我当时知道,我一定就已经告诉你了.

If I were you, I would have left her.
如果我是你(与事实不符),我肯定已经离开她了.

这种句子用中文思考,用 “已经发生” 的概念也该想得通.这在英文而言,就是以 would/should/could + 完成时来体现.
再问: 那为什么选择完成时尔不用过去时呢,过去时也可以表示过去的动作啊
再答: 要是按这个思路,就很容易钻牛角尖了。

would / should / could 这些“情态动词”,后面要不就是跟原形,要不就在虚拟句中搭配完成时,无法接过去时。

反过来说,If I were you 干嘛要用过去时 were 呢?
这些都是沿袭语言发展的习惯逐步成为一种规则的,语言永远在不断变化中,更贴近于艺术。不若科学有些定理规律是全部需要经过辩证的。