should + have + 過去分詞
1. 表示主觀推測
指對可能已經發生的情況作主觀猜測,其意為“大概已經”“應該已經”。如:
The letter should have arrived by now. 信現在該到了。
I can't think why he should have been so angry. 我想不通他怎么會這樣生氣。
注:該用法中的should也可換成ought to,意思不變。如:
The train should [ought to] have already left. 火車大概已經開走了吧。
2. 表示責備或批評
表示過去本來應該發生而實際上沒有發生的情況,往往含有遺憾、責備、批評等感情色彩,通常可譯為“應該”“本來應該”等。如:
You should have reported the matter to the police. 你本應該把這件事報告警察。
I beg your pardon. I suppose I should have knocked. 對不起,我想我應該先敲一下門的。
如果是否定式,則表示本來不該發生的情況卻發生了。如:
You shouldn't have opened her letter. 你是不應該拆她的信的。
She shouldn't have stood in a queue. She should have got tickets from the machine. 她本來就不該去排隊,她應該在售票機那兒買票。
注:該用法中的should也可換成ought to,意思不變。如:
You should [ought to] have told us earlier. 你應該早點告訴我們的。
You shouldn't [oughtn't to] have parked there. 你本不該把車停在這里。
3. 表示驚訝
表示對已經發生的情況表示驚訝或不理解,通常含有“竟然”的意味。如:
It is a pity that he should have failed in the exam. 他考試竟然沒有及格,真是可惜。
I can't think why he should have said that it was my fault. 我真不明白,他怎么竟然說這是我的過錯。
4. 用于虛擬語氣
在虛擬條件句中,當談論過去的情況時,其句型通常是:主句用“could / would / should /might +have+過去分詞”,從句用過去完成時。如:
If I had seen her I should have invited her. 我當時要是看到她的話我本會邀請她的。
If he had received the present, he should have thanked her. 如果他收到了禮物,他是應當向她道謝的。
I should not have laughed if I had thought you were serious. 如果我想到你是認真的,我就不會笑了。