uint GetCustomModifierInternId(ICustomModifier customModifier) {
Contract.Requires(customModifier != null);
uint currentTypeRefInternedId = this.GetTypeReferenceInternId(customModifier.Modifier);
uint isOptionalIntneredId = customModifier.IsOptional ? 0xF0F0F0F0 : 0x0F0F0F0F; // Just for the heck of it...
uint value = this.CustomModifierHashTable.Find(currentTypeRefInternedId, isOptionalIntneredId);
if (value == 0) {
value = this.CurrentCustomModifierInternValue++;
this.CustomModifierHashTable.Add(currentTypeRefInternedId, isOptionalIntneredId, value);
}
return value;
}