这个句子难就难在前面在should have gone的中间加上了一个状语very much,
如果去掉它,句子就好懂了“我本来是非常愿意去他们的那场舞会的,但是我没有受到邀请”。前面半句讲的是虚拟语气,但是主要特征还是那个should have,后面部分讲的是实际情况,因此只能用一般过去式来陈述事实。
虚拟语气大多表示不可能成为现实的假设,或是不可能成为现实的愿望,或是委婉语气,此处属于第二种情况
与现在事实相反 主句用should ,would ,或could have done 从句用一般过去式。其实就是退后一个事态。
反正按这个来看以下表格是虚拟语气用于条件状语从句中时,主句和从句谓语动词的形式:
条件状语从句
主 句
与过去事实相反
had + 过去分词
should /would/could/might + have + 过去分词
与现在事实相反
一般过去时(be用were)
would/should/could/might + 动词原形
与将来事实相反
一般过去时或should(were to) + 动词原形
Would/should/cold/might + 动词原形
这不是个纯粹的虚拟语气,应该是前半句是虚拟语气,后半句描述的是事实。前半句虚拟语气,与现在事实相反,所以用should+动词原形。后半句是现实,我没收到邀请,陈述语气,一般过去式。因为invite不是个连续性动词,不能用have been,只能用一般的被动语态,所以不选D。