Ввести. GetFields () - только возврат “общедоступной константы” поля

Я не нахожу, что коды возврата менее ужасны, чем исключения. За исключением Вы имеете try{} catch() {} finally {}, где как с кодами возврата Вы имеете if(){}. Я раньше боялся исключений по причинам, приведенным в сообщении; Вы не знаете, должен ли указатель быть очищен, что имеет Вас. Но я думаю, что у Вас есть те же проблемы когда дело доходит до кодов возврата. Вы не знаете состояние параметров, если Вы не знаете некоторые детали о рассматриваемой функции/методе.

Невнимательный, необходимо обработать ошибку, если это возможно. Можно позволить так легко исключению распространить к верхнему уровню, как игнорируют код возврата и позволяют программе segfault.

мне действительно нравится идея возвратить значение (перечисление?) для результатов и исключения для исключительного случая.

26
задан Jon Kruger 17 August 2009 в 12:51
поделиться

2 ответа

Попытка проверить, включает ли FieldInfo.Attributes FieldAttributes.Literal . Я не проверял, но звучит правильно ...

(Я не думаю, что вы можете получить только константы за один вызов GetFields , но вы можете фильтровать результаты, возвращенные таким образом.)

20
ответ дан 28 November 2019 в 06:55
поделиться
type.GetFields(BindingFlags.Static | BindingFlags.Public).Where(f => f.IsLiteral);
35
ответ дан 28 November 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: