英语讲究时态一致,c的前面是对过去的假设,但是后半部分是对将来的虚拟,语法错误。改成would
have
done就对了。If
I
knew,I
would
have
rung
him
up,如果我知道他电话,我会打给他的
虚拟语气
此处表示如果过去我知道他的号码
我就能打电话给他
所以
用
if
i
had
known
it,
i
would
have
rung
him
up.
与过去事实相反
did换成
had
done
would
换成
would
have
done
根据语境就知道了,我不知道他的电话号码(现在)。假设,我如果之前就已经知道的话,我就已经打电话喊他起来了——这里是过去完成时。
是判断是对过去的虚拟呀
then的意思就是那时。
对过去的虚拟。
从句过去完成,主句would/should/could/might
have
done