Я просматриваю свойства метаданных отражения и добавляю определенные атрибуты ко всем действиям в API Controller. Сначала проверьте уровень 1 свойств, посмотрите, существует ли он, а затем предшествуйте уровню 2 свойств.
Sonarqube выдает предупреждение ниже. Дело в том, что я хочу безопасно проверить 1 уровень, прежде чем переходить к следующему, иначе программа выдаст ошибку. Если объединение нескольких операторов if в одну строку во время выполнения, не может ли компилятор внезапно зашифровать последовательность операторов if, что приводит к ошибке? Какой безопасный способ это сделать? Кроме того, если люди занимаются рефакторингом кода, делает ли он последовательность кода более разборчивой?
Предупреждение. Объедините этот оператор if с прилагаемым.
foreach (ActionModel action in controller.Actions)
{
if (action.ActionMethod.ReturnType.GenericTypeArguments.Any()) // Level 1
{
if (action.ActionMethod.ReturnType.GenericTypeArguments[0].GetGenericArguments().Any()) //Level 2
{
returnType = action.ActionMethod.ReturnType.GenericTypeArguments[0].GetGenericArguments()[0];
}
}