Bu kodu, özel durumların nasıl ele alınacağını açıklayan bir PushSharp örneğinden aldım. Bazı nedenlerle, else
koşullarının tümü, The expression is always false
belirtilerek Resharper tarafından grileştirilir. Bunun nasıl mümkün olduğunu göremiyorum.Resharper,/else koşulu asla vurulmayacağını belirtir, neden?
// ex is an Exception passed in to the method
if (ex is NotificationException)
{
// Deal with the failed notification
var notification = ((NotificationException)ex).Notification;
var logItem = new PushLog($"{typePrefix} Notification failed", $"Notification Failed: {notification}");
_pushLogRepo.Insert(logItem);
}
else if (ex is DeviceSubscriptionExpiredException) // Resharper says this is always false
{
// exception handling code...
}
else if (ex is RetryAfterException) // Resharper says this is always false
{
// exception handling code...
}
else
{
Console.WriteLine("Notification Failed for some (Unknown Reason)");
}
Birisi bunun nasıl mümkün olabileceğini açıklayabilir mi? Nasıl olabileceğini göremiyorum. İşte, sözdizimi vurgulama ile biraz daha net olan VS2015'in ekran görüntüsü - hatayı görmezden geliyorum, ben refactoring'in ortasındayım.
Nasıl bir istisna geçiriliyor? Ne geçiyor? – oppassum
Sade bir eski 'İstisna'. Kullanmakta olduğum bir kitaplık tarafından sağlanan bir hata işleme yöntemi tarafından sağlanıyor. –
Bu kitaplık, genel olarak gelse bile, yalnızca belirli bir özel durum türü atayabilir. Veya bir yeniden sağlanma hatası olabilir. kim bilir. – oppassum