Если вы не хотите использовать переключатель, как насчет использования enum? Что-то вроде:
public enum CharSet : byte
{
ANSI_CHARSET = 0,
DEFAULT_CHARSET = 1,
SYMBOL_CHARSET = 2,
SHIFTJIS_CHARSET = 128,
HANGEUL_CHARSET = 129,
HANGUL_CHARSET = 129,
GB2312_CHARSET = 134,
CHINESEBIG5_CHARSET = 136,
OEM_CHARSET = 255,
JOHAB_CHARSET = 130,
HEBREW_CHARSET = 177,
ARABIC_CHARSET = 178,
GREEK_CHARSET = 161,
TURKISH_CHARSET = 162,
VIETNAMESE_CHARSET = 163,
THAI_CHARSET = 222,
EASTEUROPE_CHARSET = 238,
RUSSIAN_CHARSET = 204
}
И вы можете настроить метод расширения, если вы используете .NET 3.5
public static class GdiCharHelper
{
public static string ToGdiName(this byte GdiCharSet)
{
return Enum.GetName(typeof(CharSet), GdiCharSet);
}
}
Так что вы можете использовать его в своем коде так:
string name = Font.GdiCharSet.ToGdiName();
РЕДАКТИРОВАТЬ: Теперь, когда я думаю об этом, вам, вероятно, следует изменить возвращаемое значение метода Extension на enum, поэтому:
return (CharSet)GdiCharSet;
Таким образом, вы тоже можете сравнить:
If (Font.GdiCharSet.ToCharSet() == CharSet.ANSI_CHARSET) {...}