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

如题所述

来个都是虚拟。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. 你的工作应该在你回家之前(被)做完。(实际上没被做完)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-23
Should have done 是主动式语法 (Active voice) 通常是表示你/我/他应该做某事
should have been done 是被动式语法 (Passive voice) 表示某件事应该做的
第2个回答  2008-09-23
将来完成时,和将来完成时的被动形式
还含有虚拟语气的意义

I should have finished the homework. 我本该完成作业的。
The homework should have been finished (by me).作业本该被完成的。
第3个回答  2008-09-23
主动和被动的区别,其实都是虚拟语气。。。。
第4个回答  2008-09-23
shoud have done 是主动语态
should have been done 是被动语态
相似回答