Why isn't my object being destroyed?

I’ve seen a fair few posts about these issues, and the overall moral is that I’m likely doing something wrong. That said, I don’t know what. Have a look:

public void Activate()
		//Get all the colliders we hit
		Collider[] hitThings = Physics.OverlapBox(collider.bounds.center, collider.bounds.extents, transform.rotation);
		//Send them right to the Damage Dealer
		foreach(Collider col in hitThings)
			//Bit confusing wording here, to clarify:
			//Ask the targetted damage dealer to deal damage to the hit colliders
		//Now die die die!!!  That is, clean yo self up! ...  Delete this hitbox

My ridiculous comments aside, this is called on my hitbox object directly after it is instantiated. I’m just using the collider as a visual way to set up the overlapBox, but it’s that last line that is causing me so many problems. Actually, it’s just causing me one problem: The object doesn’t get destroyed. Note that I’ve tried GameObject.Destroy(this.gameObject) as well, and all combinations of the two, to no avail. I even tried DestroyImmediate, but no dice. Any help would be appreciated!

So, turns out I was being a big dumb, but it had nothing to do with my use of destroy. Target.DealDamage had something erroring in it because I was testing this without using networking. I didn’t think it was a problem, but it turns out that when Unity finds a runtime error, it starts the loop over and thus was skipping my destroy call. The more you know!