Просто бросок, использующий анонимный метод:
int[] result = Array.ConvertAll<TestEnum, int>(
enumArray, delegate(TestEnum value) {return (int) value;});
или с C# 3.0, лямбдой:
int[] result = Array.ConvertAll(enumArray, value => (int) value);
Используйте отдельные аксессоры для каждого члена, к которому вы хотите получить доступ извне. Я попробовал оба и нашел следующие причины использовать аксессоры:
$ numbers = & $ object-> getNumbers (); $ numbers [] = 4;
- без ссылки вам нужно будет снова вызвать сеттер .) Самая большая разница, которую я вижу, это с phpdoc:
__ set
, вы не сможете сгенерировать phpdoc для каждого аксессора @property
может помочь в этом вопросе) . Лично я бы сам определил аксессоры, даже если это потребует написания немного большего количества кода:
__ set
. Кроме того, я бы использовал эти методы доступа при установке свойств изнутри класса:это означает немного больше кода, да, но это также означает прохождение определенного кода (например, кода для проверки некоторых вещей), который они содержат.
Наконец, если вы просто используете некоторые свойства для хранения данных, а не необходимо определить какое-либо конкретное поведение, почему бы не сделать их общедоступными и разрешить пользователям доступ к ним напрямую?