D
选D。句意:昨晚我本应该去参加我堂妹的生日聚会,但我没有空。I was not available表示的是过去的真实情况,为一含蓄条件,相当于if I had been available(如果我有空的话),此处为与过去情况相反的虚拟语气,主句应使用 “would/might/could/should+have done”结构,故选D项。本题易受was和last night的影响而错选A项或C项,但本题为虚拟语气,而非陈述语气。考生若没有弄清楚虚拟条件句的主句和从句中谓语动词结构的不同,就可能错选B项。