could have、should have、would have怎么从实质上区分它们?

问题描述:

could have、should have、would have怎么从实质上区分它们?
后面都加 done 的形式,很多时候分不清他们具体该如何使用,

本来可以去做某事而没做could(语气委婉)/can(正式) have done
本应该去做某事而没去做 should have done
本打算去做某事而没有做 would have
诸如此类的还有很多 must have done
还有他们的否定形式 cannot have done本不可以去做某事且没做成
情态动词+have+done 表示 本来怎么怎么样而没有实现