Bu, C # 7'nin yeni bir özelliğidir ve genellikle desen eşleştirmeyle birlikte kullanılan çok hoş bir özelliktir. Bu özellik ve daha pek çoğu, C # 7.0'daki Yenilikler C # ekip blogunda duyurulmuştur .
Takımın burada başarmaya çalıştığı şey daha fazla akışkan koddur. Dışarıdaki değişkenlerin listesinin kullanım dışı kaldığı için çok uzadığı bazı durumları hatırlıyor musunuz? Hızlı bir örnek:
int i;
Guid g;
DateTime d;
if (int.TryParse(o, out i)) { }
else if (Guid.TryParse(o, out g)) { }
else if (DateTime.TryParse(o, out d)) { }
Sorunu gördün mü? Tüm o değişkenlerin orada hiçbir şey yapmadan oturması faydasızdır. C # 7 kullanılarak satır sayısı yarıya indirilebilir:
if (int.TryParse(o, out int i)) { }
else if (Guid.TryParse(o, out Guid g)) { }
else if (DateTime.TryParse(o, out DateTime d)) { }
Yalnızca satır sayısı en aza indirilmekle kalmaz, aynı zamanda kapsamda olmasını istemediğiniz gereksiz değişkenler listesi de yoktur. Bu, kullanmak istemediğiniz, ancak şimdi size görünen bir değişkeni kullanmanızı engeller.
Bu özellik, switch
bu kodda olduğu gibi (yukarıdaki koddan farklı bir davranışa sahiptir!)
switch (o)
{
case int i: { break; }
case Guid g: { break; }
case DateTime d: { break; }
}