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.
when Aşağıdaki bağlamlarda bir filtre koşulu belirtmek için bağlamsal anahtar sözcüğünü kullanın:
- bir veya
try-catchdeyiminin catch yan tümcesindetry-catch-finally. - Deyiminde bir olay koruyucusu
switcholarak. - İfadede büyük/küçük harf koruyucusu
switcholarak.
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
when catch yan tümcesinde
when Belirli bir özel durumun yürütülmesi için işleyici için doğru olması gereken bir koşul belirtmek üzere catch yan tümcesinde anahtar sözcüğünü kullanın. 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; değilse falseyürütülür.
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;
}
}
}