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.
Seçim deyimleri -
if, if-elseve switch deyimleri, bir ifadenin değerine göre birçok olası yoldan yürütülecek deyimleri seçer.
deyimiif, yalnızca sağlanan bir Boole ifadesi olarak değerlendirilirse truedeyimini yürütür. deyimi, if-else boole ifadesini temel alarak hangi iki kod yolunun izleyebileceğinizi seçmenizi sağlar. deyimi, switch bir ifadeyle desen eşleşmesine göre yürütülecek bir deyim listesi seçer.
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.
if ifadesi
Deyimi if aşağıdaki iki biçimden biri olabilir:
ifBölümü olan birelsedeyim, aşağıdaki örnekte gösterildiği gibi boole ifadesinin değerine göre yürütülecek iki deyimden birini seçer:DisplayWeatherReport(15.0); // Output: Cold. DisplayWeatherReport(24.0); // Output: Perfect! void DisplayWeatherReport(double tempInCelsius) { if (tempInCelsius < 20.0) { Console.WriteLine("Cold."); } else { Console.WriteLine("Perfect!"); } }ifParçası olmayan birelsedeyim, gövdesini yalnızca aşağıdaki örnekte gösterildiği gibi Boole ifadesi olarak değerlendirilirsetrueyürütür:DisplayMeasurement(45); // Output: The measurement value is 45 DisplayMeasurement(-3); // Output: Warning: not acceptable value! The measurement value is -3 void DisplayMeasurement(double value) { if (value < 0 || value > 100) { Console.Write("Warning: not acceptable value! "); } Console.WriteLine($"The measurement value is {value}"); }
Aşağıdaki örnekte gösterildiği gibi, birden çok koşulu denetlemek için deyimleri iç içe if yerleştirebilirsiniz:
DisplayCharacter('f'); // Output: A lowercase letter: f
DisplayCharacter('R'); // Output: An uppercase letter: R
DisplayCharacter('8'); // Output: A digit: 8
DisplayCharacter(','); // Output: Not alphanumeric character: ,
void DisplayCharacter(char ch)
{
if (char.IsUpper(ch))
{
Console.WriteLine($"An uppercase letter: {ch}");
}
else if (char.IsLower(ch))
{
Console.WriteLine($"A lowercase letter: {ch}");
}
else if (char.IsDigit(ch))
{
Console.WriteLine($"A digit: {ch}");
}
else
{
Console.WriteLine($"Not alphanumeric character: {ch}");
}
}
İfade bağlamında, bir Boole ifadesinin değerine göre iki ifadeden birini değerlendirmek için koşullu işlecini ?: kullanın.
switch ifadesi
deyimi, switch aşağıdaki örnekte gösterildiği gibi, eşleşme ifadesiyle bir desen eşleşmesine göre yürütülecek bir dizi deyim seçer:
DisplayMeasurement(-4); // Output: Measured value is -4; too low.
DisplayMeasurement(5); // Output: Measured value is 5.
DisplayMeasurement(30); // Output: Measured value is 30; too high.
DisplayMeasurement(double.NaN); // Output: Failed measurement.
void DisplayMeasurement(double measurement)
{
switch (measurement)
{
case < 0.0:
Console.WriteLine($"Measured value is {measurement}; too low.");
break;
case > 15.0:
Console.WriteLine($"Measured value is {measurement}; too high.");
break;
case double.NaN:
Console.WriteLine("Failed measurement.");
break;
default:
Console.WriteLine($"Measured value is {measurement}.");
break;
}
}
Yukarıdaki örnekte deyimi switch aşağıdaki desenleri kullanır:
- İlişkisel desen: bir ifade sonucunu sabitle karşılaştırmak için.
- Sabit desen: bir ifade sonucunun sabite eşit olup olmadığını test edin.
Önemli
deyimi tarafından switch desteklenen desenler hakkında bilgi için bkz . Desenler.
Yukarıdaki örnekte de büyük/küçük harf gösterilmiştir default . büyük default /küçük harf, bir eşleşme ifadesi başka bir büyük/küçük harf deseni ile eşleşmediğinde yürütülecek deyimleri belirtir. Eşleşme ifadesi herhangi bir büyük/küçük harf deseni ile eşleşmiyorsa ve büyük/küçük harf yoksa default denetim bir switch deyimden geçer.
Deyimiswitch, ilk anahtar bölümündedurum deseni eşleşme ifadesiyle eşleşen ve varsa büyük/küçük harf koruyucusu olarak değerlendirilen deyim listesini yürütürtrue. Deyim switch , büyük/küçük harf desenlerini yukarıdan aşağıya doğru metin sırasına göre değerlendirir. Derleyici, bir switch deyimi ulaşılamaz bir durum içerdiğinde bir hata oluşturur. Bu hata, büyük harf olayı zaten işlediğinde veya desenin eşleşmesi imkansız olduğunda oluşur.
Uyarı
Servis default talebi bir deyimin içinde herhangi bir switch yerde görünebilir. Konumu ne olursa olsun, default durum yalnızca diğer tüm büyük/küçük harf desenleri eşleşmediyse veya goto default; deyimi switch bölümlerinden birinde yürütülürse değerlendirilir.
Aşağıdaki örnekte gösterildiği gibi deyimin switch bir bölümü için birden çok büyük/küçük harf deseni belirtebilirsiniz:
DisplayMeasurement(-4); // Output: Measured value is -4; out of an acceptable range.
DisplayMeasurement(50); // Output: Measured value is 50.
DisplayMeasurement(132); // Output: Measured value is 132; out of an acceptable range.
void DisplayMeasurement(int measurement)
{
switch (measurement)
{
case < 0:
case > 100:
Console.WriteLine($"Measured value is {measurement}; out of an acceptable range.");
break;
default:
Console.WriteLine($"Measured value is {measurement}.");
break;
}
}
Bir switch deyim içinde denetim, bir anahtar bölümünden diğerine geçemez. Bu bölümdeki örneklerde gösterildiği gibi, genellikle her switch bölümünün sonundaki deyimini kullanarak break denetimi deyimden switch geçirirsiniz. Bir deyiminin denetimini geçirmek için return ve switch deyimlerini de kullanabilirsiniz. Geçiş davranışını taklit etmek ve denetimi diğer switch bölümüne geçirmek için deyiminigoto kullanabilirsiniz.
Önemli
Her switch bölümü , breakgotoveya returnile bitmelidir. Bir anahtar bölümünden diğerine geçmek derleyici hatası oluşturur. Ancak, önceki örnekte olduğu gibi case < 0: aynı anahtar bölümüne birden çok anahtar etiketi uygulayabilirsiniz. Bu kasıtlı tasarım seçimi, aynı veya birbirine bağlı mantığı paylaşan birden çok durumu kısa bir şekilde işlemeye olanak tanır.
İfade bağlamında, bir ifadeyle desen eşleşmesini switch temel alan aday ifadeler listesinden tek bir ifadeyi değerlendirmek için ifadeyi kullanabilirsiniz.
Önemli
Switch ifadesi ile switch deyimi arasındaki farklar:
- switch deyimi , bir kod bloğu içindeki yürütme akışını denetlemek için kullanılır.
- switch ifadesi genellikle değer döndürme ve değer atama bağlamlarında kullanılır ve genellikle ifade gövdeli üyeler olarak kullanılır.
- anahtar ifadesi büyük/küçük harf bölümü boş olamaz, ancak switch deyimi büyük/küçük harf bölümü boş olabilir.
Servis talebi korumaları
Durum deseni, switch bölümünün yürütülmesi için koşulu belirtmek için yeterince açıklayıcı olmayabilir. Böyle bir durumda, servis talebi koruyucusu kullanın. Koşul, eşleşen bir desenle birlikte karşılanmalıdır. Büyük/küçük harf koruyucu bir Boole ifadesi olmalıdır. Aşağıdaki örnekte gösterildiği gibi, bir deseni when izleyen anahtar sözcüğünden sonra bir servis talebi koruyucusu belirtin:
DisplayMeasurements(3, 4); // Output: First measurement is 3, second measurement is 4.
DisplayMeasurements(5, 5); // Output: Both measurements are valid and equal to 5.
void DisplayMeasurements(int a, int b)
{
switch ((a, b))
{
case (> 0, > 0) when a == b:
Console.WriteLine($"Both measurements are valid and equal to {a}.");
break;
case (> 0, > 0):
Console.WriteLine($"First measurement is {a}, second measurement is {b}.");
break;
default:
Console.WriteLine("One or both measurements are not valid.");
break;
}
}
Yukarıdaki örnekte iç içe ilişkisel desenlere sahip konumsal desenler kullanılır.
C# dil belirtimi
Daha fazla bilgi için C# dil belirtimininaşağıdaki bölümlerine bakın:
Desenler hakkında daha fazla bilgi için C# dil belirtimininDesenler ve desen eşleştirme bölümüne bakın.