should have done与should have been done的区别?

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:55:49

来个都是虚拟。should have done是主动,应该做而没做;should have been done是被动,应该被做而没被做。

eg:You should have told me yesterday that you had changed your mind. 你昨天应该告诉我你改变主意了。(实际上没有告诉)

Your work should have been done before you went home. 你的工作应该在你回家之前(被)做完。(实际上没被做完)

将来完成时,和将来完成时的被动形式
还含有虚拟语气的意义

I should have finished the homework. 我本该完成作业的。
The homework should have been finished (by me).作业本该被完成的。

Should have done 是主动式语法 (Active voice) 通常是表示你/我/他应该做某事
should have been done 是被动式语法 (Passive voice) 表示某件事应该做的

shoud have done 是主动语态
should have been done 是被动语态

主动和被动的区别,其实都是虚拟语气。。。。