虽说这是虚拟句的语法规则,但也不必死记,试着用中文来理解时态搭配上的逻辑. If I had done sth, I would have done sth.这种虚拟句,中文的意思就是:如果我【当时】做了XX,我肯定就【已经】YY了.例如: If I had ...那为什么选择完成时尔不用过去时呢,过去时也可以表示过去的动作啊要是按这个思路,就很容易钻牛角尖了。
would / should / could 这些“情态动词”,后面要不就是跟原形,要不就在虚拟句中搭配完成时,无法接过去时。
反过来说,If I were you 干嘛要用过去时 were 呢?
这些都是沿袭语言发展的习惯逐步成为一种规则的,语言永远在不断变化中,更贴近于艺术。不若科学有些定理规律是全部需要经过辩证的。