Это кандидат для вычислительных выражений?

У меня есть следующий код C #, он проверяет разрешения. Мне интересно, будут ли вычислительные выражения при преобразовании в f # способом исключить проверки на null.

bool ShouldGrantPermission(ISecurityService security, User user, Item item) {
  return user != null && item != null && user.Id == item.AuthorId
    && security.Does(user).Have(MyPermission).On(item);
}

Я хотел бы отметить, что API ISecurityService в настоящее время возвращает false, если какой-либо из элементов имеет значение null. Однако он выполняет вызов базы данных, поэтому код здесь проверяет значение null, а затем выполняет проверку идентификатора, потому что в большинстве случаев это возвращает false и избегает вызова базы данных.

5
задан Charles Lambert 9 May 2011 в 15:34
поделиться