couldn?t have done 表示什么

可以这么想:
could have done是说本来可能做而没有做。那么,couldn't have done就是本来不可能做却做了。
因为有很多工作,本来不能玩得很开心的,却在聚会上玩得很开心。

如果句子是下面这样,就应该用shouldn't.
- Did you go to the party?
- yes. But I really shouldn't have because I had a lot of work to do.
这里是虚拟语气
B couldn’t