ไทป์คือทุกอย่างของไลบรารี่ .NET
เมื่อเราต้องการพัฒนา application จาก .NET เวลาส่วนใหญ่หมดไปกับการออกแบบตัว application และการใช้งานไทป์ สำหรับการใช้งานไทป์ Microsoft แนะนำใหัใช้เอกสารอ้างอิงที่เรียกว่า Microsoft Development Network หรือ MSDN ซึ่งมีทั้งแบบ offline และ online ครับ
ตัวอย่างการใช้งาน MSDN online
- สมมติต้องการรู้จักกับคลาส Form
- ไปที่ MSDN online
- ให้พิมพ์คำว่า Form ลงไปดังรูป แล้วกดปุ่มค้นหาหรือกด Enter

- จะปรากฏหัวข้อเรื่องให้เลือกมากมาย อ่านรายละเอียดเล็กน้อย แล้วเลือกหัวข้อเรื่องที่ต้องการ จากรูปผมเลือกหัวข้อแรกครับ

- ให้สังเกตสามจุดในรูปด้านล่างที่ผม mark ไว้
- ในกรอบสีเหลี่ยมส้มนั้นสำคัญมาก มันบอกว่าคลาส Form นี้สืบเชื้อสายมาจากใครบ้าง
- ส่วนวงรีอีกสองวง เราก็เลือกเป็นภาษา C# และหากต้องการนำโค้ดไปใช้ก็ให้คลิกที่ Copy ง่ายดีใช่ไหมละ ?

- นอกจากนี้มันยังบอกเราด้วยว่าคลาส Form ประกอบด้วย constructors, properties, methods, evens และอื่นๆพร้อมรายละเอียดอีกเล็กน้อย

งานของเราคือพยายามใช้มันให้เกิดผล ถ้าถามผม ผมมักจะทำแบบนี้
- ผมจะจดจำว่าไทป์ (คลาส, สตรัก, primitive types) นั่นชื่อว่าอะไร
- นำไปค้นใน MSDN
- ตรวจดูว่า constructor ของมันรับไทป์หรือไม่ ถ้ารับมีอะไรบ้าง เคยรู้จักไทป์นั้นบ้างไหม
- ตรวจดูว่า properties หรือ method เหล่านั้นมีหน้าที่อะไร ตรงตามจุดประสงค์ของผมหรือไม่ ถ้าตรงจะต้องส่งไทป์อะไรให้มันบ้าง และมันคืนค่าอะไรออกมา
- ตรวจดูว่า even ของมันได้แก่อะไรบ้าง ตรงตามจุดประสงค์หรือไม่ ถ้าตรงมันตรวจจับคลาสอะไร เรารู้จักหรือยัง
- แล้วทดลองนำมาใช้ อะไรไม่รู้จักก็ไปค้นใน MSDN อีก ทำต่อไปจนกว่าจะใช้เป็น ไม่ก็โดดไปหาใน google
ฉันไม่เข้าใจ constructor, properties, method อะไรพวกนั้น มันคืออะไร ?
แท้จริงผมอยากอธิบายเสียตอนนี้ แต่เอาไว้บทความต่อไปแล้วกัน อยากให้ลองทำตามตัวอย่างต่อไปนี้
P12_MSDN_HelpMe
- สร้างโปรเจ็กค์ใหม่เพิ่มเข้าไปยังโซลูชัน CsharpTutorialForFriends เหมือนเคย
- ตั้งชื่อมันว่า P12_MSDN_HelpMe
- ณ หน้าต่าง Solution Explorer ของโปรเจ็กต์นี้ ให้เพิ่ม Reference โดยคลิกขวาที่ References -> Add Reference...

- เลือกแท็บไลบรารี่ .NET
- เลือก component ชื่อ System.Windows.Forms
- กด OK

- เขียนโค้ดดังรูปในบรรทัดที่ 6 เพื่อลดการอ้างถึงเนมสเปชที่ยาวมากไปในอนาคต

- บรรทัดที่ 14 ภายในรูปด้านล่าง เขียนโค้ดเพื่อสร้างออบเจ็กต์ของคลาส Form จากคำสั่ง new Form();
- บรรทัดที่ 16 ภายในรูปด้านล่าง เขียนโค้ดเพื่อให้ออบเจ็กต์ข้างต้นมีชีวิต (แท้จริงมีรายละเอียดมากมาย) ด้วยคำสั่ง Application.Run

- ผลลัพธ์

แบบฝึกคิด
- จงให้เหตุผลว่าเหตุใดจึงต้องเพิ่ม component ชื่อ System.Windows.Forms ?
- ไม่ใช้คำสั่ง using System.Windows.Forms; ได้หรือไม่ อย่างไร ?
- ผมทราบได้อย่างไรว่าคำสั่ง new Form(); สามารถถูกเรียกให้ทำงานได้ ?
- reference ของออบเจ็กต์ที่เกิดจากคำสั่ง new Form(); ถูกส่งให้กับตัวแปรชื่อ (โอกาสหน้าจะเรียกว่า อินสแตนท์) form และถูกจัดการแบบ value type ในหน่วยความจำใช่หรือไม่ เพราะเหตุใด ?
แบบฝึกหัด
- จากโปรเจ็กต์ชื่อ P12_MSDN_HelpMe เพิ่มโค้ดต่อไปนี้ไว้ ณ บรรทัดที่ 15 (หรือตามวิจารณญาณการจัดโค้ดของเพื่อนๆ) ดังรูป แล้วจงทำให้โปรแกรมนี้สามารถทำงานได้

เมื่อเราต้องการพัฒนา application จาก .NET เวลาส่วนใหญ่หมดไปกับการออกแบบตัว application และการใช้งานไทป์ สำหรับการใช้งานไทป์ Microsoft แนะนำใหัใช้เอกสารอ้างอิงที่เรียกว่า Microsoft Development Network หรือ MSDN ซึ่งมีทั้งแบบ offline และ online ครับ
ตัวอย่างการใช้งาน MSDN online
- สมมติต้องการรู้จักกับคลาส Form
- ไปที่ MSDN online
- ให้พิมพ์คำว่า Form ลงไปดังรูป แล้วกดปุ่มค้นหาหรือกด Enter
- จะปรากฏหัวข้อเรื่องให้เลือกมากมาย อ่านรายละเอียดเล็กน้อย แล้วเลือกหัวข้อเรื่องที่ต้องการ จากรูปผมเลือกหัวข้อแรกครับ
- ให้สังเกตสามจุดในรูปด้านล่างที่ผม mark ไว้
- ในกรอบสีเหลี่ยมส้มนั้นสำคัญมาก มันบอกว่าคลาส Form นี้สืบเชื้อสายมาจากใครบ้าง
- ส่วนวงรีอีกสองวง เราก็เลือกเป็นภาษา C# และหากต้องการนำโค้ดไปใช้ก็ให้คลิกที่ Copy ง่ายดีใช่ไหมละ ?
- นอกจากนี้มันยังบอกเราด้วยว่าคลาส Form ประกอบด้วย constructors, properties, methods, evens และอื่นๆพร้อมรายละเอียดอีกเล็กน้อย
งานของเราคือพยายามใช้มันให้เกิดผล ถ้าถามผม ผมมักจะทำแบบนี้
- ผมจะจดจำว่าไทป์ (คลาส, สตรัก, primitive types) นั่นชื่อว่าอะไร
- นำไปค้นใน MSDN
- ตรวจดูว่า constructor ของมันรับไทป์หรือไม่ ถ้ารับมีอะไรบ้าง เคยรู้จักไทป์นั้นบ้างไหม
- ตรวจดูว่า properties หรือ method เหล่านั้นมีหน้าที่อะไร ตรงตามจุดประสงค์ของผมหรือไม่ ถ้าตรงจะต้องส่งไทป์อะไรให้มันบ้าง และมันคืนค่าอะไรออกมา
- ตรวจดูว่า even ของมันได้แก่อะไรบ้าง ตรงตามจุดประสงค์หรือไม่ ถ้าตรงมันตรวจจับคลาสอะไร เรารู้จักหรือยัง
- แล้วทดลองนำมาใช้ อะไรไม่รู้จักก็ไปค้นใน MSDN อีก ทำต่อไปจนกว่าจะใช้เป็น ไม่ก็โดดไปหาใน google
ฉันไม่เข้าใจ constructor, properties, method อะไรพวกนั้น มันคืออะไร ?
แท้จริงผมอยากอธิบายเสียตอนนี้ แต่เอาไว้บทความต่อไปแล้วกัน อยากให้ลองทำตามตัวอย่างต่อไปนี้
P12_MSDN_HelpMe
- สร้างโปรเจ็กค์ใหม่เพิ่มเข้าไปยังโซลูชัน CsharpTutorialForFriends เหมือนเคย
- ตั้งชื่อมันว่า P12_MSDN_HelpMe
- ณ หน้าต่าง Solution Explorer ของโปรเจ็กต์นี้ ให้เพิ่ม Reference โดยคลิกขวาที่ References -> Add Reference...
- เลือกแท็บไลบรารี่ .NET
- เลือก component ชื่อ System.Windows.Forms
- กด OK
- เขียนโค้ดดังรูปในบรรทัดที่ 6 เพื่อลดการอ้างถึงเนมสเปชที่ยาวมากไปในอนาคต
- บรรทัดที่ 14 ภายในรูปด้านล่าง เขียนโค้ดเพื่อสร้างออบเจ็กต์ของคลาส Form จากคำสั่ง new Form();
- บรรทัดที่ 16 ภายในรูปด้านล่าง เขียนโค้ดเพื่อให้ออบเจ็กต์ข้างต้นมีชีวิต (แท้จริงมีรายละเอียดมากมาย) ด้วยคำสั่ง Application.Run
- ผลลัพธ์
แบบฝึกคิด
- จงให้เหตุผลว่าเหตุใดจึงต้องเพิ่ม component ชื่อ System.Windows.Forms ?
- ไม่ใช้คำสั่ง using System.Windows.Forms; ได้หรือไม่ อย่างไร ?
- ผมทราบได้อย่างไรว่าคำสั่ง new Form(); สามารถถูกเรียกให้ทำงานได้ ?
- reference ของออบเจ็กต์ที่เกิดจากคำสั่ง new Form(); ถูกส่งให้กับตัวแปรชื่อ (โอกาสหน้าจะเรียกว่า อินสแตนท์) form และถูกจัดการแบบ value type ในหน่วยความจำใช่หรือไม่ เพราะเหตุใด ?
แบบฝึกหัด
- จากโปรเจ็กต์ชื่อ P12_MSDN_HelpMe เพิ่มโค้ดต่อไปนี้ไว้ ณ บรรทัดที่ 15 (หรือตามวิจารณญาณการจัดโค้ดของเพื่อนๆ) ดังรูป แล้วจงทำให้โปรแกรมนี้สามารถทำงานได้
ดีเลยครับ แวะมาดูของผมด้วยนะ
ตอบลบhttp://darkcyber17.blogspot.com/
ยินดีที่รู้จักยิ่งครับเพื่อน ผมได้เพิ่มลิงค์ไปยังบล็อคของเพื่อนเรียบร้อยแล้วครับ (ด้านล่างซ้าย) เยี่ยมมากเลยครับ
ตอบลบเนื้อหาเข้าใจง่ายมาก ขอเป็นกำลังฝใจให้พัฒนาต่อไปนะครับ
ตอบลบ