Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki bağlamlarda bir filtre koşulu belirtmek için bağlamsal anahtar sözcüğünü kullanırsınız when :
- bir veya
try-catchdeyiminin catch yan tümcesindetry-catch-finally. - Deyiminde bir olay koruyucusu
switcholarak. - İfadede büyük/küçük harf koruyucusu
switcholarak.
when catch yan tümcesinde
Anahtar when sözcüğü, belirli bir özel durumun yürütülmesi için işleyici için true olması gereken bir koşul belirtmek üzere catch yan tümcesinde kullanılabilir. Söz dizimi şöyledir:
catch (ExceptionType [e]) when (expr)
burada ifade , Boole değeri olarak değerlendirilen bir ifadedir. döndürürse true, özel durum işleyicisi yürütülür; ise falseyürütülmüyor.
anahtar sözcüğüne when sahip özel durum filtreleri, daha iyi hata ayıklama desteği ve performans avantajları da dahil olmak üzere geleneksel özel durum işleme yaklaşımlarına göre çeşitli avantajlar sağlar. Özel durum filtrelerinin çağrı yığınını nasıl koruduğuna ve hata ayıklamayı nasıl geliştirdiğine ilişkin ayrıntılı bir açıklama için bkz . Özel durum filtreleri ve geleneksel özel durum işleme.
Aşağıdaki örnek, özel durum iletisinin when metnine bağlı olarak bir HttpRequestException için işleyicileri koşullu olarak yürütmek için anahtar sözcüğünü kullanır.
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Console.WriteLine(MakeRequest().Result);
}
public static async Task<string> MakeRequest()
{
var client = new HttpClient();
var streamTask = client.GetStringAsync("https://localHost:10000");
try
{
var responseText = await streamTask;
return responseText;
}
catch (HttpRequestException e) when (e.Message.Contains("301"))
{
return "Site Moved";
}
catch (HttpRequestException e) when (e.Message.Contains("404"))
{
return "Page Not Found";
}
catch (HttpRequestException e)
{
return e.Message;
}
}
}