นั่นเป็นคุณสมบัติใหม่จาก C # 7 ซึ่งเป็นคุณสมบัติที่ดีมากมักใช้ร่วมกับการจับคู่รูปแบบ คุณลักษณะนี้และอื่น ๆ อีกมากมายจะมีการประกาศในบล็อก C # ทีมมีอะไรใหม่ใน C # 7.0
สิ่งที่ทีมพยายามทำให้สำเร็จคือโค้ดที่ลื่นไหลมากขึ้น คุณจำบางกรณีที่รายการตัวแปรออกใช้เวลานานมากโดยไม่มีประโยชน์หรือไม่? ตัวอย่างสั้น ๆ :
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)) { }
เห็นปัญหาไหม ไม่มีประโยชน์ที่จะให้ตัวแปรทั้งหมดนั่งอยู่ที่นั่นโดยไม่ทำอะไรเลย จำนวนบรรทัดสามารถตัดครึ่งโดยใช้ C # 7:
if (int.TryParse(o, out int i)) { }
else if (Guid.TryParse(o, out Guid g)) { }
else if (DateTime.TryParse(o, out DateTime d)) { }
ไม่เพียงลดจำนวนบรรทัดเท่านั้น แต่ยังไม่มีรายการตัวแปรที่ไม่จำเป็นในขอบเขตที่คุณไม่ต้องการให้มีอีกด้วย วิธีนี้ป้องกันไม่ให้คุณใช้ตัวแปรที่คุณไม่ได้ตั้งใจจะใช้ แต่ตอนนี้คุณสามารถมองเห็นได้
คุณสมบัตินี้ยังมีประโยชน์กับการจับคู่รูปแบบในswitch
คำสั่งเช่นในโค้ดนี้ (ซึ่งมีลักษณะการทำงานที่แตกต่างจากโค้ดด้านบน!)
switch (o)
{
case int i: { break; }
case Guid g: { break; }
case DateTime d: { break; }
}