✔ 最佳答案
I should have done it, but I didn’t have time then.=我本應該把它做完的,但當時我沒有空。
這是假設語氣,用過去完成式,表示與過去的情境不符:該做而未做。
You should have seen the film.=你該看那部影片的(但你沒看)。
You shouldn't have done that.=你不該做那件事的(但你做了)。 To think that such a lazy boy should have passed the exam!=想想看這樣一個懶小子居然會考及格了!
這也是假設語氣,但是用來表示遺憾和驚訝,表示過去竟然發生了!所以也用了過去完成式。
It is a pity that he should miss such a golden opportunity.(用should miss也可以表示己經發生了)
I wonder that such a man as he should commit an error.
語言有時也有不符邏輯的時候,所以需要從習慣用法和語氣來判定句子真正的意思。
請想想中文的[恢復健康]和[恢復疲勞]以及[中華隊大勝日本隊]與[中華隊大敗日本隊]的語言邏輯是否相矛盾。
2013-03-06 14:20:32 補充:
I should have done it...
[should+完成式=過去的義務]
[should +原式=現在的義務]
One should love one' country.
2013-03-06 14:35:12 補充:
should這個字可以當shall的過去式,但有時助動詞should是屬於不作時態變化,也不隨人稱變化的助動詞,永遠都以should出現。She should see a doctor about that cough.(should = ought to)(假設語氣)
所以在indirect speech裡出現的should,是shall的過去式:
I explained that I should be too busy to see them the following day.這是用在過去的未來,所以用should。(直述語氣)