4)should +不定式完成式(have done)
用于肯定句中,表示对过去行为的推测。
He should have finished the work by now。
表示“本应该做而实际上没有做某事”,其否定式表示某种行为本不该发生却发生了。可以与ought to +不定式完成式(have done)互换。
1. You ought to / should have helped him. (but you didn’t.)
2. She shouldn’t have taken away my measuring tape, for I wanted to use it.
5) needn’t +不定式完成式(have done)
表示“本来不必做而实际上做了某事”。
You needn’t have watered the flowers, for it is going to rain.
6) will +不定式完成式(have done)
主要用于第二、三人称,表示对已完成的动作或事态的推测。
He will have arrived by now.
liuxuepaper.com