////////////////////////////////////////////////////////////////////////////////
// Strips off ArrayType, ParameterModifierType, PointerType, PinnedType and optionally NullableType
// and returns the result.
public CType GetNakedType(bool fStripNub)
{
for (CType type = this; ;)
{
switch (type.GetTypeKind())
{
default:
return(type);
case TypeKind.TK_NullableType:
if (!fStripNub)
{
return(type);
}
type = type.GetBaseOrParameterOrElementType();
break;
case TypeKind.TK_ArrayType:
case TypeKind.TK_ParameterModifierType:
case TypeKind.TK_PointerType:
type = type.GetBaseOrParameterOrElementType();
break;
}
}
}