สอบถามเกี่ยวกับ C# ครับ


จากรูปครับ
1. ผมอยากทราบว่าผมจะทำเขียนโค้ดยังไงเพื่อเรียกใช้หรือดูผลลัพธ์ในคลาส LAF.OStyleChanged 
2. ในคลาส LAFProgress....... ระหว่าง manual field vs. auto property มันต่างกันยังไงครับ

ผมเป็นมือใหม่ครับ แล้วก็ไม่เก่งอะไร หัดเขียน, เรียนรู้ไปเรื่อย ๆ ลองหาข้อมูลมีแต่ภาษาอังกฤษทั้งฟังและผ่านก็ยังไม่เข้าใจครับ รบกวนผู้รู้ช่วยสอนด้วยครับ 
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
>
>  เรียกใช้หรือดูผลลัพธ์ในคลาส LAF.OStyleChanged
>

ใน .Net จะใช้ Event-Driven Pattern สำหรับการทำ call-back

กล่าวคือใน type อาจมีเหตุการณ์ (event) ชื่อต่าง ๆ (OStyleChanged)
แล้วก็ type อื่น ๆ ที่อยากจะรับทราบเหตุการณ์นั้น  ทำการ subscribe ชื่อ event นั้น
1. event มี type เป็น muliple delegate (ลองไปหาอ่านดูใน msdn)
2. มีข้อตกลงว่าจะผ่านค่าพารามิเตอร์เป็น descendant (ลูกหลาน) ของ EventArgs เสมอ

แต่สำหรับกรณีนี้ดูเหมือนคนเขียนตั้งใจไม่ให้คนอื่น subscribe ตัว OStyleChanged เลย
เพราะว่า
- protected หมายถึง ใช้ใน descendant เท่านั้น
- internal ถ้าจำผิด  หมายถึง  ต้องเรียกภายใน assembly เดียวกันเท่านั้น
- อีกทั้งไม่ได้ประกาศ  OStyleChanged  ไว้เป็น event ด้วย

ดังนั้นโดยเจตนารมณ์ของผู้เขียน  คือ  ไม่ให้คนอื่นสามารถรับทราบเมื่อ  OStyleChanged  เกิดขึ้นครับ
เขียนทำนองว่าเป็น event แต่เอาไว้ใช้ภายในกันเองเท่านั้น

สรุปหาอ่านเรื่อง type ประเภท multiple delegate และ event member ของ type ครับ

>
>  ระหว่าง manual field vs. auto property มันต่างกันยังไงครับ
>

เห็นใจ น่าหนักใจแทนคนเรียนครับ
บางทีความขี้เกียจมันทำให้เพิ่ม learning curve ของผู้เรียนใหม่ได้
1. arrow หมายถึง expression body
-  ซึ่งสามารถเอามาใช้ในคลาสตรง ๆ เลย  อย่างใน Progress => progress ข้างบน
-  หรือเอามาใช้ใน get =>  field_name และ set => field_name = value ก็ได้
หลักการใช้ก็เหมือน lambda หรือ function object กลาย ๆ
เป็น language feature ที่เกิดจากความขี้เกียจล้วน ๆ
แต่ใช้เป็นแล้วจะติดใจครับ

2. automatic implementation property
หรือ property ที่ไม่ได้อ้างอิงชื่อ member อื่น
เราสามารถเขียนในรูปย่อ { get; set; } ได้

เพิ่มเติม   [Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่