Показать полную графическую версию : перечисляемые строки
Surround
04-10-2009, 20:07
Хочу сделать тип данных перечисление, содержащий сообщения об ошибках в программе, чтобы, например, в MessageBox'е не писать целиком каждый раз текст, а делать обращение вида "ErrorCodes.NoAuthFile", вместо которого уже подставлялся бы текст. Но беда в том, что тип Enum поддерживает только числовые значения элементов перечисления. Как сделать то же самое, но со строками?
Surround, Может быть создать символьный массив указателей, где каждому указателю будет присвоена строка текста. А дальше использовать оператор switch, вроде в C# есть такой оператор? А какой язык программирования? И если допустим, код ошибки вернуть, return 4, то через сравнение case вернуть текст соответствующий 4 индексу массива, ErrorText[4]. Вариант?
Вместо switch можно использовать тоже перечисление в качества номера элемента в массиве строк.
enum Errors {NoAuthFile, NoFile, FileCorrupted};
//...
string[] ErrorText = {"No Auth File", "No File", "File is corrupted" };
//...
MessageBox.Show(ErrorText[(int)Errors.NoAuthFile]);
MessageBox.Show(ErrorText[(int)Errors.NoFile]);
MessageBox.Show(ErrorText[(int)Errors.FileCorrupted]);
Drongo, указатели в С# используют в крайних случаях (manage(управляемая) политика .NET Framework), в конструкциях unsafe. Их применение даёт возможность повысить быстродействие программы.
а список строковых констант в пространство имён можно в C# запихнуть? типа того:
// допустим, что это синтаксически правильная конструкция на С#
class Errors
{
string
NoAuthCode = "No Auth Code",
NoFile = "No File",
FileCorrupted = "File Corrupted"
...;
};
MessageBox.Show(Errors.NoAuthCode);
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.