Я нашел эту ошибку в своем текущем проекте, а затем воспроизвел в очень простом коде, который я разделяю здесь.ReSharper предлагает ошибочное выражение «Expression is always true»
Я использую ReSharper 8.0.2 и Visual Studio 2013.
class Program
{
static void Main(string[] args)
{
var orders = new List<Order> { new Order {ClientId = 10}, new Order()};
var firstOrder = orders.FirstOrDefault();
if (firstOrder != null && firstOrder.ClientId.HasValue)
{
// In this line resharper suggests that t.ClientId.HasValue is always true. This is wrong.
var ordersWithClient = orders.Where(t => t.ClientId.HasValue).ToList();
}
}
}
class Order
{
public int? ClientId { get; set; }
}
Если вы обнаружили ошибку в Resharper, вы должны сообщить об этом JetBrains, не задавая здесь вопрос. – juharr
в этом контексте ReSharper говорит прямо, что ваши кодовые заказы имеют один элемент, который не является нулевым. –
@EhsanSajjad 'orders' имеет две записи. Второй имеет «null» 'ClientId'. – juharr