Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Инициализация массива в С#

82  
Murr коренной житель03.01.07 16:58
Murr
03.01.07 16:58 
Имею код вида:
		public enum EOperationType { Stop=101, Copy, Pop, None }
private static int[,] operationsTable = new int[,]
{
{ (int)ENavigationObjectType.End, (int)ENavigationObjectType.End, (int) EOperationType.None },
{ (int)ENavigationObjectType.End, (int)ENavigationObjectType.Servers, (int) EOperationType.Stop },
....
}


ENavigationObjectType почти такой же enum как и EOperationType.
Проблема - хочется иметь статическую инициализацию без приведения к int.
Есть у кого идеи как обойти приведение?

#1 
  scorpi_ nobody03.01.07 19:15
NEW 03.01.07 19:15 
в ответ Murr 03.01.07 16:58
В ответ на:
21.5 Enum values and operations
Each enum type defines a distinct type; an explicit enumeration conversion (╖13.2.2) is required to convert between an enum type and an integral type, or between two enum types.

#2 
Murr коренной житель03.01.07 23:48
Murr
NEW 03.01.07 23:48 
в ответ scorpi_ 03.01.07 19:15
Я не об этом.
Что все enum-типы разные - это нормально и что проверка выполняется во время компиляции - тоже.
Что не нормально - то, что не получается статически инициализировать массив enum-типа соответствующими enum-значениями, хотя конверсия выполняется без проблем.
#3 
  scorpi_ nobody04.01.07 08:22
NEW 04.01.07 08:22 
в ответ Murr 03.01.07 23:48
Да неужто? Эта строка прекрасно работает
        private static EOperationType[] operationsTable = { EOperationType.None, EOperationType.Copy };


#4 
Murr коренной житель04.01.07 10:30
Murr
NEW 04.01.07 10:30 
в ответ scorpi_ 04.01.07 08:22
Cool! Осознал таки где меня поглючило...
#5