คำถามติดแท็ก automatic-properties

11
เขตข้อมูลสาธารณะเปรียบเทียบกับคุณสมบัติอัตโนมัติ
เรามักจะบอกว่าเราควรปกป้องการห่อหุ้มด้วยวิธีการ getter และ setter (คุณสมบัติใน C #) สำหรับฟิลด์คลาสแทนที่จะเปิดเผยฟิลด์กับโลกภายนอก แต่มีหลายครั้งที่เขตข้อมูลอยู่ที่นั่นเพื่อเก็บค่าและไม่ต้องการการคำนวณหรือตั้งค่า สำหรับสิ่งเหล่านี้เราทุกคนจะทำตามหมายเลขนี้: public class Book { private string _title; public string Title { get{ return _title; } set{ _title = value; } } } ฉันมีคำสารภาพฉันทนไม่ได้ที่จะเขียนทุกอย่าง (จริง ๆ แล้วมันไม่จำเป็นต้องเขียนมันต้องดูมัน) ดังนั้นฉันจึงไปโกงและใช้พื้นที่สาธารณะ จากนั้นมาพร้อม C # 3.0 และฉันเห็นว่าพวกเขาเพิ่มคุณสมบัติอัตโนมัติ: public class Book { public string Title {get; …

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

10
ความแตกต่างระหว่างคุณสมบัติและฟิลด์ใน C # 3.0+
Наэтотвопросестьответына กองมากเกินнарусском : Длячегонужнысвойства? ฉันรู้ว่ามันน่าจะเป็นสิ่งที่ซ้ำกันของความแตกต่างระหว่างสนามและสถานที่ให้บริการใน C # คืออะไร? แต่คำถามของฉันมีความแตกต่างเล็กน้อย (จากมุมมองของฉัน): เมื่อฉันรู้ว่า ฉันจะไม่ใช้คลาสของฉันกับ "เทคนิคที่ใช้งานได้กับคุณสมบัติ" เท่านั้นและ ฉันจะไม่ใช้รหัสตรวจสอบใน getter / setter มีความแตกต่าง (ยกเว้นสไตล์ / การพัฒนาในอนาคต) เช่นการควบคุมบางอย่างในการตั้งค่าคุณสมบัติหรือไม่? มีความแตกต่างเพิ่มเติมระหว่าง: public string MyString { get; set; } และ public string myString; (ฉันทราบว่าเวอร์ชันแรกต้องใช้ C # 3.0 ขึ้นไปและคอมไพเลอร์สร้างฟิลด์ส่วนตัว)

12
C # Lazy Loaded คุณสมบัติอัตโนมัติ
ใน C # มีวิธีเปลี่ยนคุณสมบัติอัตโนมัติให้เป็นคุณสมบัติอัตโนมัติที่โหลดแบบขี้เกียจด้วยค่าเริ่มต้นที่ระบุหรือไม่? โดยพื้นฐานแล้วฉันพยายามเปลี่ยนสิ่งนี้ ... private string _SomeVariable public string SomeVariable { get { if(_SomeVariable == null) { _SomeVariable = SomeClass.IOnlyWantToCallYouOnce(); } return _SomeVariable; } } เป็นสิ่งที่แตกต่างโดยที่ฉันสามารถระบุค่าเริ่มต้นและจัดการส่วนที่เหลือโดยอัตโนมัติ ... [SetUsing(SomeClass.IOnlyWantToCallYouOnce())] public string SomeVariable {get; private set;}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.