จาก MSDN :
อย่างไรก็ตามการใช้ var มีโอกาสอย่างน้อยที่จะทำให้โค้ดของคุณเข้าใจได้ยากยิ่งขึ้นสำหรับผู้พัฒนารายอื่น ด้วยเหตุนี้เอกสาร C # โดยทั่วไปจึงใช้ var เฉพาะเมื่อจำเป็นเท่านั้น
ฉันไม่ชอบการพิมพ์โดยนัย บนพื้นผิวมันมีแนวโน้มที่จะทำให้โค้ดอ่านง่ายขึ้น แต่สามารถนำไปสู่ปัญหามากมายที่ขวางทาง ถ้า dev เปลี่ยนตัวแปร initializer ให้พูดจาก
var myFloat=100f;
ไปยัง
var myFloat=100;
หรือ
var myFloat=100.0;
ประเภทจะเปลี่ยนแปลงส่งผลให้เกิดข้อผิดพลาดทั้งหมดของคอมไพเลอร์หรือหากอยู่ในมุมมองเว็บและคุณไม่ได้ใช้ขั้นตอนหลังการสร้างเพื่อคอมไพล์มุมมองของคุณข้อผิดพลาดรันไทม์ทั้งหมดที่ไม่ติดไม่มีประสิทธิภาพ การทดสอบก่อนการปรับใช้
การพิมพ์โดยนัยยังไม่สามารถใช้งานได้ทุกที่ (จากลิงก์ MSDN เดียวกัน)
var สามารถใช้ได้เฉพาะเมื่อมีการประกาศตัวแปรท้องถิ่นและเริ่มต้นในคำสั่งเดียวกัน ไม่สามารถกำหนดค่าเริ่มต้นให้เป็นโมฆะหรือในกลุ่มวิธีการหรือฟังก์ชันที่ไม่ระบุชื่อ
ไม่สามารถใช้ var ในฟิลด์ที่ขอบเขตคลาสได้
ตัวแปรที่ประกาศโดยใช้ var ไม่สามารถใช้ในนิพจน์การเริ่มต้นได้ กล่าวอีกนัยหนึ่งนิพจน์นี้ถูกกฎหมาย: int i = (i = 20); แต่นิพจน์นี้สร้างข้อผิดพลาดในการคอมไพล์เวลา: var i = (i = 20);
ตัวแปรที่พิมพ์โดยนัยหลายรายการไม่สามารถเริ่มต้นได้ในคำสั่งเดียวกัน
หากประเภท var ชื่ออยู่ในขอบเขตแล้วคำหลัก var จะแก้ไขชื่อประเภทนั้นและจะไม่ถือว่าเป็นส่วนหนึ่งของการประกาศตัวแปรท้องถิ่นพิมพ์โดยนัย
การรักษารหัสของคุณให้สอดคล้องกัน (ในกรณีนี้โดยใช้การพิมพ์อย่างชัดเจนทุกที่) เป็นสิ่งที่ดีมาก ในความคิดของฉันvar
ขี้เกียจและไม่มีประโยชน์จริงและแนะนำอีกหนึ่งจุดที่อาจเกิดความล้มเหลวในกระบวนการที่ซับซ้อนอยู่แล้ว
2017 Update
ฉันเปลี่ยนใจ เมื่อทำงานใน C # ฉันใช้var
เวลาส่วนใหญ่ (ยกเว้นสิ่งต่าง ๆ เช่นตัวแปรประเภทอินเตอร์เฟสและอื่น ๆ ) มันทำให้รหัสสั้นซึ่งช่วยเพิ่มการอ่าน ถึงกระนั้น - ให้ความสนใจกับประเภทที่แก้ไขแล้วจริงๆ