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

1个回答

  • 虽说这是虚拟句的语法规则,但也不必死记,试着用中文来理解时态搭配上的逻辑.

    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 + 完成时来体现.