public ColorString ToColorString() { if (null == m_cs) { m_cs = new ColorString(); m_cs.Append(DbgProvider.ColorizeModuleName(m_udt.Module.Name)) .Append("!") .Append(m_udt.ColorName) .Append(" (size 0x") .Append(m_udt.Size.ToString("x")) .Append(")"); int widest = 16; foreach (var item in Items) { var ddti = item.Item as DbgDataTypeInfo; if (null != ddti) { widest = Math.Max(widest, ddti.Name.Length); } } widest = Math.Min(widest, 40); foreach (var item in Items) { m_cs.AppendLine() .Append(" +0x") .Append(item.Offset.ToString("x3")) .Append(" "); var ddti = item.Item as DbgDataTypeInfo; if (null != ddti) { m_cs.Append(ColorString.MakeFixedWidth(ddti.Name, widest)) .Append(" : ") .Append(ddti.DataType.ColorName); } else { VTableLayoutItem vli = (VTableLayoutItem)item; var dvti = (DbgVTableTypeInfo)item.Item; m_cs.AppendPushFg(ConsoleColor.DarkGray); if (vli.VTablePath.Count > 1) { m_cs.Append(vli.VTablePath[1].ColorName).Append(": "); } m_cs.Append(dvti.ToColorString()) .AppendPop(); } } m_cs.MakeReadOnly(); } // end if( !m_cs ) return(m_cs); } // end ToColorString()