Я добавил: transformRequest: angular.identity
в запросе params.
Нет. Преждевременно не оптимизируйте , если Вы не доказали с профилировщиком, что это - на самом деле проблема.
Касающийся лучшей практики:
, Когда у Вас нет конкретной причины того, чтобы сделать перечисление байтом типа, необходимо оставить его как значение по умолчанию.
Любое время Вы используете перечисление в операторе переключения, у Вас должен быть пункт "по умолчанию" для недопустимого перечисления значений. Таким образом, не имеет значения, если Вы проверяете на 256-NumRealEnumValues или 2^32-NumRealEnumValues. У обоих будет пункт по умолчанию, который обрабатывает все недопустимые случаи.
Одна причина того, чтобы явно установить тип перечисления, то, если Вы хотите, чтобы Ваше перечисление соответствовало другому типу в Вашей программе, и необходимо явно бросить между ними.
Изменение типа к самому маленькому соответствию не поможет Вам с проблемами управления версиями также. Если у Вас нет точно макс. размера заполненного перечисления. Проблемами управления версиями я имею в виду, когда у Вас есть скомпилированный dll использование перечисления, тогда Вы добавляете новое перечисление значений, некоторый код может выполниться, который не был предназначен для входа вв пункт "по умолчанию" оператора переключения.
Касающийся эффективности:
No нет никакого преимущества с точки зрения эффективности для создания этого байтом.
интервал более эффективен для использования, потому что CPU на x86 имеет 32-разрядные регистры. Копирование в регистр сделано 32 бита за один раз.
при использовании меньшего типа необходимо обнулить часть регистра и копии в остальную часть битов регистра более низкоуровневых.
Единственная причина сделать это - то, если Вы храните или передаете это значение с помощью определенного протокола, который требует поле для имения тот размер.
Что было бы получено? Вы сохранили бы огромные 3 байта памяти, за счет немного более медленного выполнения и менее интуитивного или читаемого кода. (Читающий это, я должен задаться вопросом, имел ли pyou на самом деле причину того, чтобы сделать это байтом, и какова та причина, возможно, была. По-видимому, Вы старались изо всех сил использовать тип не по умолчанию по причине).
, Если Вы планируете сохранить миллионы этих вещей тогда да, сохраняя несколько байтов на каждом, может окупиться. Иначе, нет.
Это - та же причина, Вы обычно не используете байт или короткий вместо интервала
Вы не должны присваивать определенный целый тип перечислениям, но позволять среде.NET выяснить лучший "размер" для перечисления. Как JaredPar заявил, при изменении типа данных Вы должны определенно проверка, помогает ли он на самом деле.
вещь состоит в том, что 32-разрядные целые числа являются "естественными" на x86 процессорах, потому что они могут быть, легко выравниваются оптимальным способом.