ดังนั้นเราจึงเขียน:
Customer c = new Customer();
ทำไมการออกแบบไม่ใช่แบบที่เราเขียน:
c = new Customer();
c.CreditLimit = 1000;
คอมไพเลอร์สามารถคำนวณคะแนน c ให้กับลูกค้าและอนุญาตให้สมาชิกของลูกค้าเรียกใช้บน c?
ฉันรู้ว่าเราอาจต้องการเขียน:
IPerson c = new Customer();
IPerson e = new Employee();
เพื่อที่จะสามารถเขียน:
public string GetName(IPerson object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
แต่ถ้าเราเขียนว่า:
c = new Customer();
e = new Employee();
เรายังสามารถเขียน:
public string GetName(object)
{
return object.Name
}
string name = GetName(c); // or GetName(e);
คอมไพเลอร์อาจบ่นเกี่ยวกับโค้ดด้านบนทันทีหากการอ้างอิงวัตถุชนิด c ไม่สนับสนุนคุณสมบัติชื่อ (เนื่องจากสามารถตรวจสอบสมาชิกที่ใช้ในอาร์กิวเมนต์ / พารามิเตอร์ภายในเมธอด) หรือรันไทม์อาจบ่น
แม้จะมีคำหลักแบบไดนามิกของ C # เรายังคงใช้ตัวแปร 'type' (พิจารณาที่รันไทม์) แต่ทำไมตัวแปรถึงต้องการประเภทเลย ฉันแน่ใจว่าต้องมีเหตุผลที่ดี แต่ฉันไม่สามารถคิดได้!
var
ใน C # และเป็น exlicit เกี่ยวกับตำแหน่งที่คุณต้องการประกาศตัวแปรที่ดีเสมอ