ฉันมาจากพื้นหลัง C ++ และหมดทุกอย่าง C # ในงานปัจจุบันของฉันและฉันเพิ่งอ่านคำถามมากมายเกี่ยวกับความแตกต่างระหว่างฟิลด์สาธารณะและคุณสมบัติและสิ่งที่แตกต่างและกลับมาในรูปแบบนี้ คำถามพื้นฐาน (เช่นโพสต์ SO นี้และคำถามที่เชื่อมโยงทั้งหมดที่เกี่ยวข้อง) คำถามทั้งหมดเหล่านี้ได้รับการแก้ไขในแง่ของความแตกต่างในทางปฏิบัติที่ได้รับการมีอยู่ของระบบทรัพย์สิน แต่ฉันคิดว่ามันเป็นการดีที่จะเข้าใกล้เรื่องนี้ในแง่ของสิ่งที่นักออกแบบของทุกภาษาที่ตัดสินใจสนับสนุนคุณสมบัติในครั้งแรก สถานที่กำลังคิด (ตรวจสอบรายชื่อในบทความ Wikipedia ที่นี่) OOP วิวัฒนาการมาจาก C ++ / Java เพื่อขยายสู่บทความ Wikipedia ที่น่าสนใจว่าเป็นตัวกลางระหว่างวิธีการและข้อมูลสมาชิกอย่างไร
"นั่นคือคุณสมบัติจะอยู่ตรงกลางระหว่างรหัสสมาชิก (วิธีการ) และข้อมูลสมาชิก (ตัวแปรอินสแตนซ์) ของคลาสและคุณสมบัติให้ระดับการห่อหุ้มที่สูงกว่าเขตข้อมูลสาธารณะ"
MSDNเพิ่มพื้นหลังเพิ่มเติม:
"แม้ว่าคุณสมบัติจะคล้ายกันกับวิธีการทางเทคนิค แต่ก็แตกต่างกันมากในแง่ของสถานการณ์การใช้งานพวกเขาควรมองว่าเป็นสมาร์ทฟิลด์พวกเขามีการเรียกไวยากรณ์ของฟิลด์และความยืดหยุ่นของเมธอด"
ฉันอยากจะรู้ว่ามันมาถึงแล้วในระดับปานกลางของการห่อหุ้มที่พิสูจน์แล้วว่ามีประโยชน์สำหรับการเขียนโปรแกรมโดยทั่วไป ฉันสมมติว่าแนวคิดนี้ไม่ได้เกิดขึ้นในการเขียนโปรแกรมภาษาแรกที่แสดงกระบวนทัศน์ OOP
BMI = bob.weight/sq(bob.height)
อ่านดีกว่าโดยไม่มี()
IMO