หมายเหตุ: นี่ถูกโพสต์เมื่อฉันเริ่มต้น C # ด้วยความรู้ในปี 2014 ฉันสามารถพูดได้อย่างแท้จริงว่าคุณสมบัติรถยนต์เป็นหนึ่งในสิ่งที่ดีที่สุดที่เคยเกิดขึ้นกับภาษา C #
ฉันใช้เพื่อสร้างคุณสมบัติของฉันใน C # โดยใช้ฟิลด์ส่วนตัวและฟิลด์สาธารณะ:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
ตอนนี้ด้วย. NET 3.0 เราได้รับคุณสมบัติอัตโนมัติ:
public string Title { get; set; }
ฉันรู้ว่านี่เป็นคำถามเชิงปรัชญา / อัตนัย แต่มีเหตุผลใดที่จะใช้คุณสมบัติอัตโนมัติเหล่านี้ยกเว้นการบันทึกรหัสห้าบรรทัดสำหรับแต่ละเขตข้อมูล สิ่งที่ฉันจับได้ส่วนตัวคือคุณสมบัติเหล่านั้นซ่อนสิ่งจากฉันและฉันไม่ใช่แฟนตัวยงของมนต์ดำ
ในความเป็นจริงเขตข้อมูลส่วนตัวที่ซ่อนไม่แม้แต่จะปรากฏในดีบักเกอร์ซึ่งก็โอเคเนื่องจากข้อเท็จจริงที่ว่าฟังก์ชั่น get / set ไม่ทำอะไรเลย แต่เมื่อฉันต้องการใช้ตรรกะ getter / setter จริงฉันต้องใช้คู่ส่วนตัว / สาธารณะต่อไป
ฉันเห็นประโยชน์ที่ฉันบันทึกรหัสจำนวนมาก (หนึ่งต่อหกบรรทัด) โดยไม่สูญเสียความสามารถในการเปลี่ยนตรรกะตัวรับ / ตัวตั้งค่าในภายหลัง แต่จากนั้นอีกครั้งฉันสามารถทำเช่นนั้นได้โดยเพียงแค่ประกาศฟิลด์สาธารณะ ความต้องการของ {รับ; ตั้ง; } block ดังนั้นจึงประหยัดรหัสได้อีก
ดังนั้นสิ่งที่ฉันหายไปที่นี่? ทำไมทุกคนถึงต้องการใช้คุณสมบัติอัตโนมัติ