永发信息网

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

答案:2  悬赏:40  手机版
解决时间 2021-03-09 16:18
  • 提问者网友:夢醒日落
  • 2021-03-09 11:48
虚拟语气里的would have done为什么是have,为什么要把完成时加在里面?
最佳答案
  • 五星知识达人网友:愁杀梦里人
  • 2021-03-09 12:17
虽说这是虚拟句的语法规则,但也不必死记,试着用中文来理解时态搭配上的逻辑。

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 + 完成时来体现。
全部回答
  • 1楼网友:逐風
  • 2021-03-09 13:08
是这样的 could have done 中带有能力的意味,表示本来有能力去做,但没做到 而ought to have done 和should have done 中带有肯定的意味,ought to have caught 比should have caught 语气稍弱,但实际上没差异,表示本应该去做,而没去做,太绝对,所以要选a。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯