หนึ่ง. วาร์กเวทย์มนตร์
มีการเพิ่มการประกาศตัวแปรใน C# 3.0 การประกาศนี้คล้ายกับ var ของ JavaScript แต่ก็แตกต่างออกไปเช่นกัน
1. จุดเดียวกันคือสามารถใช้ var เพื่อประกาศตัวแปรท้องถิ่นประเภทใดก็ได้
2. ข้อแตกต่างก็คือ มีหน้าที่รับผิดชอบในการบอกคอมไพเลอร์ว่าตัวแปรจำเป็นต้องอนุมานประเภทของตัวแปรตามนิพจน์การเริ่มต้น และตัวแปรนั้นสามารถเป็นได้เฉพาะตัวแปรท้องถิ่นเท่านั้น
สอง. ความคล้ายคลึงกัน
ก็สามารถประกาศได้
จำนวนเต็ม var = 10;
ชื่อ var = "edisundong";
หมายเลข var = int ใหม่ [] { 1, 2, 3 };
สาม. ความแตกต่าง
var เป็นเพียงคีย์เวิร์ด ไม่ใช่ชนิดใหม่ใน C# 3.0 มีหน้าที่บอกคอมไพเลอร์ว่าตัวแปรจำเป็นต้องอนุมานประเภทของตัวแปรตามนิพจน์การเริ่มต้น
จำนวนเต็ม int = 10;
ชื่อสตริง = "edisundong";
หมายเลข int[] = ใหม่ int[] { 1, 2, 3 };
สาม. บันทึก
1. ต้องกำหนดค่า ณ เวลาที่ประกาศ เนื่องจากการประกาศจะขึ้นอยู่กับนิพจน์ทางด้านขวาของหมายเลขมอบหมาย หากมีข้อความต่อไปนี้:
จำนวนเต็ม var;
จำนวนเต็ม = 10;
ข้อผิดพลาดในการเริ่มต้นท้องถิ่นที่พิมพ์โดยปริยายจะต้องรายงานในระหว่างการคอมไพล์
2. หลังจากใช้ var เพื่อประกาศตัวแปรในเครื่องแล้ว ก็ยังคงมีประเภทที่รัดกุมและสามารถทดสอบได้ดังนี้
จำนวนเต็ม var = 10;
จำนวนเต็ม = "edisundong";
ข้อผิดพลาดไม่สามารถแปลงประเภท 'สตริง' เป็น 'int' โดยปริยายจะถูกรายงานในระหว่างการคอมไพล์
3. ประเภทเวลาคอมไพล์ของนิพจน์เริ่มต้นไม่สามารถเป็นประเภทว่าง (null) คอมไพเลอร์ไม่สามารถอนุมานประเภทของตัวแปรท้องถิ่นโดยยึดตาม null เช่นคำสั่งต่อไปนี้:
จำนวนเต็ม var = null;
ไม่สามารถกำหนด '
4. คำสั่งการเริ่มต้นจะต้องเป็นนิพจน์ นิพจน์การเริ่มต้นไม่สามารถมีตัวเองได้ แต่อาจเป็นนิพจน์ใหม่ (เช่น ประเภทที่ไม่ระบุชื่อ) ที่มีวัตถุหรือตัวเริ่มต้นคอลเลกชัน
ตัวอย่างเช่น คุณสามารถประกาศได้ดังนี้:
var coll = ใหม่ Hashtable();
5. การประกาศ var นั้นจำกัดอยู่ที่ตัวแปรท้องถิ่น และยังสามารถรวมไว้ใน foreach, for และการใช้คำสั่งได้อีกด้วย การใช้งานต่อไปนี้ไม่ถูกต้อง:
โปรแกรมชั้นเรียน
-
ส่วนตัว var i = 10; // ตัวแปรส่วนตัวทั่วโลก
โมฆะคงที่หลัก (สตริง [] args)
-
-
คำหลักตามบริบท 'var' อาจปรากฏภายในการประกาศตัวแปรท้องถิ่นเท่านั้น ข้อผิดพลาดที่จะถูกรายงานในระหว่างการคอมไพล์
บทความนี้มาจากบล็อก CSDN โปรดระบุแหล่งที่มาเมื่อพิมพ์ซ้ำ: http://blog.csdn.net/superyoungchaos/archive/2009/12/23/5060696.aspx