Sign in
Back to list
SSamNovember 1Public content
English / Grammar

情态完成式(Modal Perfect)

结构核心意思典型场景例句
could have done本来能/本来可以;可能已经未使用的能力;对过去的推测I could have helped. 我本来能帮忙。 / She could have left. 她可能已经走了。
might have done本来可能;也许已经较弱的推测/虚拟可能I might have said something wrong. 我可能说错话了。
may have done可能已经对过去的推测He may have forgotten. 他可能忘了。
must have done肯定已经强肯定推测You must have been tired. 你当时肯定累了。
can't have done / couldn't have done不可能已经强否定推测She can't have finished so soon. 她不可能这么快完成。
needn't have done本不必做却做了事后觉得多余You needn't have waited. 你本不必等的。
ought to have done本该做而没做义务/后悔,接近 should haveYou ought to have told me. 你本该告诉我。
shouldn't have done本不该做却做了后悔/批评I shouldn't have said that. 我不该说那话。
will have done将来某时前已完成;推测“想必已经”将来完成/推测By Friday I will have finished. 周五前我会完成。
would rather have done宁愿当时做了对过去的偏好/后悔I would rather have stayed home. 我宁愿当时待在家。
would like to have done本来想做未实现的愿望I would like to have met him. 我本来想见他。
was/were to have done原计划/本应做而没做计划落空He was to have arrived at noon. 他原定中午到。
be supposed to have done本应已经做期望/义务You were supposed to have called. 你本应打过电话。

按语义分组更好记

1. 反事实/未实现:本来会、本来能、本来该、本不必

  • would have done:本来会
  • could have done:本来能/本来可以
  • should/ought to have done:本该
  • needn't have done:本不必
  • might have done:本来可能

对比:

  • I could have helped. = 我本来能帮忙。(但没帮)
  • I should have helped. = 我本该帮忙。(自责)
  • I would have helped. = 我本来会帮忙。(隐含“如果……的话”)
  • I needn't have helped. = 我本不必帮忙。(但帮了)

2. 对过去的推测:可能、肯定、不可能

  • may/might have done:可能已经
  • must have done:肯定已经
  • can't/couldn't have done:不可能已经
  • could have done 也可表示“可能已经”,但比 might 更受语境影响

例:

  • He may have missed the bus. 他可能没赶上公交。
  • He must have missed the bus. 他肯定没赶上。
  • He can't have missed the bus. 他不可能没赶上。

3. 时间结构,不是虚拟

  • will have done:将来完成
  • would have done 也可作“过去将来完成”:He said he would have finished by then.

4. 半情态/固定搭配

  • was to have done:原计划而没做
  • be supposed to have done:本应已经
  • would like to have done:本来想
  • would rather have done:宁愿当时

易混重点

  • needn't have done = 本不必做但做了
    didn't need to do = 没必要做,通常没做
  • must have done = 肯定已经(推测)
    had to do = 不得不做(义务)
  • could have done 不一定是虚拟,也可推测“可能已经”
  • should have done 是“本该”,不是“本来会”;“本来会”用 would have done

Discussion 0

No comments yet.

Verify your email to join the discussion.

Your email is used for verification and abuse prevention. It will not be public.