งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

2. เริ่มต้นใช้ Visual C# 2010 Express

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "2. เริ่มต้นใช้ Visual C# 2010 Express"— ใบสำเนางานนำเสนอ:

1 2. เริ่มต้นใช้ Visual C# 2010 Express
บทที่สองนี้ ต้องการแนะนำสภาพแวดล้อมในการทำงาน สภาพแวดล้อมนี้หมายถึง หน้าตาของ Visual C# อะไรที่มองเห็นทุกอย่างใน Visual C# นั้นคือ สภาพแวดล้อม ซึ่งมาจากศัพท์ว่า Integrated Development Environments หรือเรียกสั้น ๆ ว่า IDE ทุกโปรแกรมที่ใช้เขียนโปรแกรม ล้วนมี IDE ยกเว้นเมื่อคุณพิมพ์โปรแกรมกับ Notepad นั้นคุณไม่ได้ IDE เลย ซึ่งจะทำให้เขียนโปรแกรมได้ไม่สะดวก ซึ่งถ้าหากเคยเรียนเขียนโปรแกรมแบบเก่าๆ ที่ให้เรียนการเขียนโดยไม่มีสภาพแวดล้อม เครื่องมืออำนวยความสะดวกกันเลย การเขียนโปรแกรมผิดเพียงนิดเดียว อาจใช้เวลานานหลายนาที และยิ่งโปรแกรมมีขนาดใหญ่ๆ ยิ่งเป็นไปได้ยากมาก ที่หาความผิดพลาดของโปรแกรมได้ อย่างไรก็ตาม ในแบบฝึกหัดอยากให้รู้ว่าคนรุ่นเก่าเขาเรียนโปรแกรมกันอย่างยากลำบากอย่างไร เลยให้ทดลองเขียนโปรแกรมอย่างง่ายๆ ไม่กี่บรรทัด และลองคอมไฟล์โปรแกรมดู ว่าใช้เวลานานเพียงใด สำหรับผู้เริ่มใหม่ คิดว่าอาจต้องใช้เวลานาน นั้นเป็นเรื่องธรรมทั่วไป ที่ใครก็พบ ก็เจอกัน ไม่ใช่เรื่องแปลกอะไรสำหรับมือใหม่ อย่างเพิ่งท้อแท้ สิ้นหวัง ยังมีวิธีที่ดีกว่า ที่มี IDE ช่วยทำงานอยู่ ซึ่งต่อไปจะพบว่า การเขียนโปรแกรมด้วย IDE ของ Visual C# มันรวดเร็วกว่า พิมพ์คำสั่งไม่กี่คำ ก็ได้คำสั่งมากมายกว่าที่เขียนจริง เมื่อทำได้ถึงระดับนี้คิดว่าคุณคงติดใจสภาพแวดล้อมของ Visual C# หากค้นต่อไป จะพบอีกว่า IDE นี้ได้ประยุกต์ภาษาอื่นๆ ไมว่าเป็น Pascal, Java, C++ ที่ไม่ใช่ของค่ายไมโครซอฟต์ Visual C# หรือ Visual Studio มีสภาพแวดล้อมที่ดูมีเครื่องมือในการเขียนโปรแกรมให้ดี การเขียนโปรแกรมให้สะดวก ควรเรียนรู้ IDE ของที่มากับภาษานั้น นั้นจึงเป็นที่มาของคำว่า สภาพแวดล้อมการทำงานที่ดี ช่วยให้เขียนโปรแกรมได้ดี สภาพแวดล้อมการทำงานที่ดี ช่วยให้เขียนโปรแกรมได้ดี C# Programming with Visual C# 2010 Express

2 เป้าหมายการเรียนรู้ เรียนรู้สภาพแวดล้อมการใช้งาน Visual C# 2010 Express การสร้างแอปพลิเคชันด้วยด้วยคอมมานไลน์ การสร้างคอนโซลแอปพลิเคชัน การสร้างวินโดว์ฟอร์มแอปพลิเคชัน การสร้าง WPF แอปพลิเคชัน สร้างคลาสไลบารี เพื่อส่งการใช้งานต่อไปยังแอปลิเคชัน อื่น การดีบักแอปพลิเคชัน เป้าหมายการเรียนรู้ ดูเหมือนมีมาก แต่นี้ทุกอย่างเป็นแค่เริ่มต้น เน้นแค่คลิกๆ และคลิก พิมพ์เองไม่กี่คำ ยิ่งใช้ IDE แล้ว ซึ่งจะเห็นจากจะเห็นพิมพ์ไม่กี่ตัวจริงๆ ส่วนใหญ่พึ่งการใช้ IDE ทั้งนั้น ยกเว้นที่พิมพ์จาก Notepad เท่านั้น การสร้างแอปพลิเคชัน (สร้างโปรแกรมใช้งานแล้วกัน) มีหลายแบบ และในหลายมีก็มี เทมเพลท อยู่แล้ว และการใช้งาน น่าจะรู้จักแอปฯ ในแบบต่างๆ ยกเว้นที่เป็นเว็บ ซึ่งทุกแอปฯ ที่แนะนำให้ลองได้ใช้งาน เป็นแอปฯ พื้นฐาน ที่ต่อไปก็เรียกใช้กันบ่อย ๆ หากว่าวันนี้เป็นเรื่องแปลกมาก ก็เพียงแค่วันนี้ คุณรู้ไหม ทุกวันนี้มีแอปฯ มากมายที่ให้เรียนรู้ใช้งาน และทุกอย่างล้วนใหม่มาก ทุกอย่างมีการเริ่มต้น และนี้คือการเริ่มต้น ย่อม มีอะไรที่เราไม่คุ้นเลย ปัญหาการสร้างแอปฯ ณ ตอนนี้ก็แค่คลิกๆ และพิมพ์ไม่กี่คำ ก็ขอให้ผ่านไปได้ เช่นกัน (และอยากให้รู้สึกอย่างนี้) ที่นี้ มารู้จัก แอปฯ แบบต่าง ที่มีอยู่ในเทมเพลท Visual C# : ๑ คอนโซล แอปฯ เป็นแอป ที่ไม่มีพึ่งกราฟฟิก ในการติตต่อกับผู้ใช้งาน ๒.วินฯ แอปฯ เป็นแอป ที่ใช้ กราฟฟิก ใน เฟรมเวิร์ค Window Form ๓. WPF แอปฯ เป็นแอป ที่ใช้ กราฟฟิก ใน เฟรมเวิร์ค Window Presentation Foundation ๔. คลาสไลบารี่ แอปฯ เป็นแอป ของระบบปฎิบัติการวินโดว์ ที่ให้โปรแกรมอื่นนำไปใช้งาน C# Programming with Visual C# 2010 Express

3 คุณสมบัติหลักของ Visual C# 2010 Express
VS C# 2010 Express เป็นโปรแกรมที่แยกส่วนมาเฉพาะ ภาษา (C#) จากเป็นชุดเต็มของ VS 2010 โดย Visual C# Express มีคุณสมบัติหลักคือ มี IDE ที่ช่วยให้การพัฒนาเร็วขึ้นด้วยการรวมเครื่องมือที่ จำเป็นในการเขียนโปรแกรม การออกแบบ การทดสอบ การหาความผิดพลาด มี Database Explorer ในตัว ซึ่งสามารถมองเห็น ฐานข้อมูลชนิดต่างๆ ได้ที่จะทำงานกับแอปพลิเคชัน มีการจัดการความผิดพลาด มีส่วนช่วยในการพิมพ์ IntelliSense , Template, code snippet มีเอกสารอิเล็คทรอนิคส์และส่วนช่วยเหลือ(Help) Visual C# เป็นโปรแกรมแยกส่วน มากจาก Visual Studio 2010 ซึ่งเป็นชุดเต็ม ที่ทั้งภาษา C++, Basic, C# และ ASP.NET ในที่นี้เราศึกษาเฉพาะ C# จึ่งใช้งานเฉพาะ Visual C# ก็พอ โดยเฉพาะตอนนี้ เน้นไมที่โครงสร้างภาษาของ C# และการโปรแกรม บนดอทเน็ตเฟรมเวิร์ค 4.0 จึงใช้เพียง Visual C# 2010 Express ซึ่งเป็นรุ่นทีให้ Download ได้ฟรี อาจมีการลงทะเบียนนิดหน่อยเพื่อ รับรหัสลงทะเบียน ซึ่งถ้าเป็นใช้งานเป็นครั้งแรก โปรแกรม Visual C# จะบังคับให้ลงทะเบียน ซึ่งลงทะเบียนได้เลย เมื่อลงทะเบียนใช้งานแล้ว ก็สามารถใช้ Visual C# 2010 Express ได้เต็มประสิทธิภาพที่มีในโปรแกรมนี้ได้ คุณสมบัติหลักๆ ที่เน้นอย่างให้รู้จัก คือ IDE ดังได้เคยได้กล่าวมาก่อนนี้แล้ว หน้าตาเป็นอย่างไรนั้น เราจะเห็นตั้งแต่เริ่มเปิดใช้โปรแกรมใช้งาน ให้สังเกตตั้งแต่เมนู ทูลบาร์ ทูลบ๊อก หน้าต่างๆ ที่เปิดดูได้ด้วยเมนู View > Other Windows ( ซึ่งถ้าทดลองเปิด ดูในหน้าต่างย่อยๆ นี้ดู และเมื่อคราใดที่ต้องการหน้าต่างๆ ในแบบที่อยู่ในเนนูย่อยนี้แล้วหาไม่เจอ ลองกลับมาเปิดหน้าต่างในนี้ดู ) หน้าที่ใช้กับทำงานกับฐานข้อมูล ชื่อว่า Database Explorer ถ้าเป็น Visual Studio 2010 จะชื่อ Server Explorer หน้าต่างนี้ใช้ สร้างฐานข้อมูล ( MS SQL Server) และดำเนินการกับระบบจัดการฐานข้อมูลได้เกือบทั้งหมด แทบไม่ต้องโปรแกรมภายนอกเลย นับว่า Visual C# ตัวเดียวเอาอยู่ และเพื่อพิมพ์อะไรๆ ในหน้าต่าง Code (หน้าโค้ดเขียนโปรแกรม) จะพบว่า มีตัวช่วยในการพิมพ์มากมาย ไม่ว่าจะเป็น ตัวช่วยเดาคำที่จะพิมพ์ ตัวตรวจสอบโครงสร้างไวยกรณ์ คล้ายกับพิมพ์ใน MS Word ที่จะแจ้งการพิมพ์ที่น่าจะผิด C# Programming with Visual C# 2010 Express

4 Template ใน Visual C# เมื่อต้อสร้างโปรแกรมใหม่ เริ่มจากเมนู File > New Project.. จะมีหน้าต่างดังรูปในเพาเวอร์พ้อยนี้ หน้าต่างนี้เป็นให้สร้าง โปรเจ็คใหม่ โปรเจ็คคืออะไร โปรเจ็คคือ โครงการ(แปลตามตัวแต่เดี๋ยวจะอธิบายต่อ) ตัวรวมโปรแกรมโค้ด ไฟล์ ที่ใช้งานต่างๆ อยู่ในระบบเดียวกัน ที่ Visual C# เรียกใช้ทำงานได้ ซึ่งเราจะสำรวจ จำนวนไฟล์ได้ที่หน้าต่าง Solution Explorer ซึ่งหน้าต่างนี้ให้เดาว่า อยู่ที่ไหน หาได้อย่างไร กลับมาที่หน้าต่างนี้อีกครั้ง ในหน้าต่างนี้จะมีเทมเพลทให้เลือก ชนิดของแอปพลิเคชัน ว่าจะใช้งานในรูปแบบใด ในที่นี้มีอยู่ หก เทมเพลท และในบทนี้เราจะได้ลองใช้งานกัน ใน สี่ เทมเพลทแรก ให้ลองใช้งาน กันอย่างน้อยก็มีในแบบปฏิบัติการที่ให้ได้ลองใช้ ลองทำกัน ซึ่งในปฏิบัติการนั้น จะเป็นการทำอย่างง่าย (เน้นอย่างง่าย หากยาก ก็คงเป็นเพราะ พิมพ์ ผิด พิมพ์ถูก ให้ดีบักกัน มากกว่า คิดว่าน่าจะเป็นอย่างนั้น) แอปฯ แรก ที่แนะนำให้ลองเขียนกัน คือ Console Application ซึ่งเป็น แอปฯ ที่เป็นหน้าจอดำๆ ไม่มี กราฟฟิกยูเซอร์อินเทอเฟส ให้ดูสวยงานเท่านั้น แต่ความจริง ในหน้าสือเล่มนี้ เน้นใช้ แอปฯ ประเภทนี้มากที่สุดเพราะ เราเน้นการใช้ไวยากรณ์ภาษา C# และการใช้ เฟรมเวิร์ด 4.0 ที่เป็นส่วนการโปรแกรม การเรียกใช้คลาสไลบารี่ ในเฟรมเวิร์ดนี้ แม้ไม่ทั้งหมด ซึ่งเป็นได้ยากทีเรียนทั้งเฟรมเวิร์ดในหนังเล่มเดียว แต่อย่างน้อยนี้จะเป็นพื้นฐานที่จะเรียนรู้เพิ่มเติม ในระดับสูง หรือในส่วนขยายอื่นๆ ต่อๆ ไป สำหรับแอปฯ อย่างอื่น ในเทมเพลทอื่นๆ ก็จะได้ลองใช้งานกัน แต่อย่างไรเสียอยากให้เริ่มต้นที่ Console App. C# Programming with Visual C# 2010 Express

5 โครงสร้างของ Project และ Solution
หน้าต่างนี้เป็นหน้าต่างที่สำคัญ ที่เรียกว่าใช้งานมากที่สุด เพราะเป็นหน้าต่างที่รวมไฟล์ใช้งาน ของโปรเจ็ค และ Solution ไฟล์โปรแกรมทีได้สร้างด้วย Visual C# 2010 Express จะเป็นเก็บไฟล์ทั้งทั้งหมดใน Solution ซึ่งโซลูชันหนึ่ง มีได้หลายโปรเจ็ค ให้คิดถึง โปรแกรมขนาดใหญ่ ที่มีหลายแอปใช้งาน ที่อาจมีทั้ง วินโดว์ฟอร์ม คอนโซล คลาลไลบารี่ ที่ทั้งหมดอยู่ในโซลูชันเดียวกัน แต่แยกคนละโปรเจ็คกัน ในขณะเริ่มต้นเรียนรู้ ให้สร้างที่ละโปรเจ็คก่อน เช่น เลือกสร้างเป็น Console Application ก็จะทำให้ใน โซลูชันนี้ มี แค่ โปรเจ็ค Console Application เท่านั้น เมื่อเราสร้าง วินโดว์ฟอร์ม แอปพลิเคชัน (ในหน้าต่างนี้ได้มีการสร้างเป็นวินแอปฯแล้ว) สำรวจดูโครงสร้างโปรเจ็คดู จะมี WindowsFormApplication1 ต่อมามีการเพิ่มโปรเจ็คไปอีก โดยเพิ่มเป็น ConsoleApplication1 และ ClassLibrary1 ลงในโซลูชัน ทำให้โซลูชันนี้มี สาม โปรเจ็ค หรือแอปฯ สามตัว ดังปรากฎในรูปนี้ สำหรับการเพิ่มโปรเจ็ค ทำได้โดยการคลิกขวา ที่ Solution ‘WindowsForomApp…” และเลือก Add > New Project.. ซึ่งทดลองทำดูด้วยก็ดี ทำลองทำให้เพิ่มที่มีทั้งสามโปรเจ็คดังนี้ดู นอกจากจะเป็นที่เก็บไฟล์ เก็บทรัพยากรของโซโลชัน โปรเจ็ค แล้ว ยังมีไอคอน ให้คลิก (ทดลองคลิกดูไม่เสียหาย) จากรูปนี้มีเพียงไอคอนเดียว (อยู่ บนบนซ้ายสุด) ให้ลองคลิกที่ โปรเจ็ค WondowsFormsApplication1 ดู จะพบว่ามีไอคอนเพิ่มขึ้น สามตัว ให้ลองคลิกที่ละไอคอน เริ่มจากตัวแรก ตัวที่สอง และตัวที่สาม ลองอ่านความหมายที่ปรากฎให้ตัวเอง ดู ถูกบ้าง ผิดบ้าง ไม่เป็นไร โปรแกรมไม่เสียหายอะไร ซึ่งหน้าต่างที่จะเกิดขึ้นใหม่สำหรับไอคอนแรก จะใช้มากกับการเขียนโปรแกรม ในวินโดว์ฟอร์ม ในเรื่องการตั้งค่า Startup Object ซึ่งคือให้ อ๊อปเจ็คใดทำงานก่อนนั้นเอง แต่ณ ขณะนี้ยังไม่รู้จักความว่าอ๊อปเจ็คดีพอ C# Programming with Visual C# 2010 Express

6 ความหมายของไฟล์ต่างๆ ใน Visual C# 2010
คำอธิบาย .cs เป็นที่เก็บโค้ดที่ขียนขึ้น โค้ดอาจเป็นไฟล์ของ Module, Windows Forms, Class ที่อยู่ในโปรเจ็ค .csproj เป็นโปรเจ็คไฟล์ ที่เก็บค่าข้อกำหนดของโปรเจ็ค เช่นเส้นทางผลลัพทธ์ของโปรแกรมที่สร้าง และเป้าหมายระบบปฏิบัติการ .config เป็นไฟล์ XML ที่เก็บค่าข้อกำหนดระบบ เช่น การต่อเชื่อมกับฐานข้อมูล ตัวแปรที่ใช้ร่วมกันทั้งโปรเจ็ค .xaml เป็นไฟล์ XAML ที่ใช้กับแอปพลิเคชันของ WPF และ Microsoft SilverlightTM เพื่อกำหนดอินเทอร์เฟส (interface) .sln เป็นเท็กไฟล์ (text file) ที่กำหนดการใช้งานโซลูชั่น ไว้ว่าโปรเจ็คใดจะทำงานก่อน การแก้ไขไฟล์นี้ไม่ควรแก้ไขด้วยโปรแกรมภายนอก Visual C# / Visual Studio .suo เป็นไฟล์ที่เก็บค่าที่กำหนด IDE ของ Visual C# / Visual Studio สมมุติว่าเราได้สร้างแอปพลิเคชันตัวหนึ่งแล้ว และมีการเซฟโปรเจ็คเก็บว่ามี่หนึ่ง อาจทดลองสร้างแอปตั้งตัวหนึ่งแล้วเซฟเลย ไม่ต้องต้องเขียนโปรแกรมอะไรเพิ่ม แต่ข้อสำคัญคือจำให้ได้ว่าเซฟโปรเจ็คของที่ตำแหน่งใด เพราะเดียวให้ทดลองเปิดโปรเจ็คที่เซฟไว้นั้นดู เมื่อเซฟแล้ว ลองใช้โปรแกรม Windows Explorer (ไปที่เมนู Start ของวินโดว์เลย) แล้วไปยังตำแนหน่ง ไฟล์ที่ได้เซฟไว้ เมื่อเปิดดูไฟล์หรือโปรเจ็คที่ได้เซฟไว้ จะพบชนิดไฟล์ ที่มีนามสกุล ต่างๆ ตามตารางข้างบนนี้ สำหรับเครื่องคอมพิวเตอร์ใด ไม่เห็น นามสกุลไฟล์ ให้เปิดการซ่อนนามสกุลไฟล์ ก่อน (ในขั้นตอนนี้หากยังไม่เห็นนามสกุลไฟล์อีกให้ ลองถามคนนั้งข้างๆ ดูว่าทำอย่างไร) ความจริง หน้านี้ต้องการเพียงให้รู้จัดชนิดไฟล์ของโปรเจ็คว่ามีแบบใดบ้าง เพราะบางไฟล์เก็บโค้ดที่เขียนอย่างเดียว เช่น ไฟล์ .cs บางไฟล์เก็บ กราฟฟิกยูเซอร์อินเทอเฟส เช่น .xaml การทราบชนิดและการใช้งานงานไฟล์ อย่างน้อยเราก็จะรู้ว่าอะไรสำคัญเพียงใด และใช้ทำอะไร การแก้ไขไฟล์เหล่านี้ ไม่ควรที่แยกแก้ไขไฟล์ หรือแก้ไขไฟล์เหล่านี้โดยตรง โดยไม่ผ่าน Visual C# นั้นเพราะเมื่อเกิดความผิดพลาดขึ้นแม้เพียงนิดเดียวอาจทำให้ไม่สามารถเปิดโปรเจ็คได้เลย C# Programming with Visual C# 2010 Express

7 C# เป็น Objected Programming Language
ต้นแบบ - Class สร้าง - Constructor มีสิ่งสำคัญอีกเรื่องหนึ่ง (สำคัญอีกแล้ว คือ ว่าสำคัญจริงๆ) ในการเขียนโปรแกรมกับ C# เป็นการเขียนโปรแกรมชิงวัตถุ (Object Oriented Programming - OOP) เช่น เดียวกับภาษาสมัยใหม่ อย่าง Java และในปัจจุบัน ภาษาสคริบหลายๆ ตัวก็ยัง OOP เลย เช่น PHP แต่เวลาเขียนโปรแกรมดูเหมือนยังไม่เห็นเป็น OOP เลย ก็นั้น คุณยังเขียนแบบโบราณอยู่นี่ แต่สำหรับ C# เกิดมาสมัยใหม่เลย จะมาเขียนเชิงโครงสร้าง คงไม่ทันการ (ซึ่งจะเขียนโครงสร้างก็ได้ แต่เหมาะโปรแกรมขนาดเล็กๆ ซึ่งจะเห็นต่อๆ ไป ว่าเราเขียนเป็น OOP โดยไม่รู้ตัว) มาตอนนี้ ในบทนี้ไม่ได้เน้นให้เขียน OOP ให้เป็นทั้งหมดในบทนี้ แต่ทำอย่างไรได้ C# เกิดมาเป็น OOP ตั้งแต่แรกเลย ทุกอย่างที่เขียน ทุกอย่างที่ทำ มันเป็น OOP (ใช้คำ OOP มาก คงไม่เบื่อ แต่ต้องการเน้นเท่านั้น) ทำให้จำเป็นขณะเริ่มต้นที่จะต้องรู้จัก คำว่า วัตถุ (Object) ไว้บ้าง ซึ่งจะมีการเรียกใช้บ่อย บางที่ก็เรียก Object , Instance, class, ที่บางที่ก็เรียกแทนกันได้ บางที่ก็เรียกแทนก็ไม่ได้เลย เริ่มเลย Object คือสิ่งที่ถูกสร้างขึ้น จากต้นแบบ ฟังก์ชันสำคัญ (ซึ่งต่อไปจะเรียกว่าเมธอด แทนฟังก์ชัน) ที่จะทำให้ Object ถูกสร้างได้คือ เมธอด Constructor พูดซ้ำอีกทีว่า Object ถูกสร้างขึ้นด้วยเมธอด Constructor ที่มีต้นแบบ มาจากคลาส ในที่นี้ ได้ยกตัวอย่าง แปลนบ้านที่เปรียบดังต้นแบบ (Class) ถูกสร้างโดยการเรียกใช้งานเมธอด Constructor ทำให้เกิดเป็น Object นำไปใช้งานได้ ได้พักอาศัยได้ แต่คลาส ไม่สามารถพักอาศัย หรือใช้งานได้ สิ่งเหล่านี้เป็นกลไก ที่ C# ทำงาน ต่อไป เราดูตัวอย่าง การสร้างจริง จากการเขียนโค้ด วัตถุ - Object C# Programming with Visual C# 2010 Express

8 การเขียนโปรแกรมสร้างเป็นวัตถุ
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Class1 com1; com1 = new Class1(); // Constructor com1.Hello(); } class Class1 { string answer; public void Hello() { Console.WriteLine("Hello, What your name?"); answer = Console.ReadLine(); Console.WriteLine("Hello, {0}", answer); Console.ReadKey(); นี้จะเป็นตัวอย่าง การเขียนโปรแกรม สร้างวัตถุ อย่างง่าย เริ่มจากให้สร้างเป็นคอนโซลแอปฯ ให้เขียนคลาส ดัง Class1 กับ class Program ให้โค้ดอยู่ในระดับเดียวกันทั้งสองคลาส ทีนี้มาดูโครงสร้างคลาส Class1 จะมีปีกา คล่อม สมาชิกสองตัวคือ string answer กับ public void Hello( ) สมาชิกตัวแรก เป็นสมาชิกธรรมดา มีชนิดข้อมูลเป็น string กับอีกตัวเป็นสมาชิก มีชนิดข้อมูลเป็น void ที่มีการทำงานภายในด้วย หลายอย่าง เริ่มจาก ถาม Hello, What ‘s your name? และพร้อมรอการรับข้อมูลผู้จากคีย์บอร์ด ด้วยคำสั่ง Console.ReadLine( ) เมื่อได้ผลลัพธ์ให้นำกลับมาเก็บใน ตัวแปรชื่อ answer ต่อมา ใช้คำสั่ง Console.WriteLine( “Hello, { 0 } “, answer); เพื่อแสดงข้อความ ว่า “Hello รวมทั้งตัวที่รับมาจาก answer ที่หน้าจอ นี้เป็นลักษณะการทำงานของคลาส Class1 ต่อไปจะเริ่มอธิบาย การสร้างวัตถุจากคลาส การสร้างวัตถุ จะเริ่มจากประการตัวชื่อตัวแปร ก่อน บรรทัดที่ สี่ ประกาศชื่อตัวแปร ว่า ชื่อ com1 มีชนิดข้อมูลเป็น คลาส Clas1 บรรทัดต่อมา จะใช้เมธอด Constructor เมธอดนี้สร้างได้ด้วยคีย์เวิร์ด new และตามด้วยชื่อคลาส ดังบรรทัดที่ ห้า บรรทัดต่อมา เป็นการเรียกวัตถุใช้งาน ผ่านชื่อตัวแปร com1 เลือกให้เมธอด Hello ทำงาน เราไม่สามารถที่จะเรียก ให้คลาส Class1 ทำงานได้โดยตรง โดยไม่ผ่านการสร้างเป็นวัตถุก่อน เราจะเข้าใจเรื่องพวกนี้มากขึ้นในบทที่ว่าด้วยคลาส C# Programming with Visual C# 2010 Express

9 ตัวอย่างการสร้างวัตถุ ด้วย Console Application
using System; namespace ConsoleApplication1 { class Program static void Main(string[] args) Home h = new Home(); h.address = “Bangkok"; Console.WriteLine("Address:{0}", h.address); } class Home public string address; นี่ก็เป็นอีกตัวอย่างหนึ่ง ของคอนโซลแอปฯ ในแอปนี้ มีอยู่ สองคลาส โดยคลาส Home มีสมาชิกตัวเดียว คือ public string address กับคลาส Program ก็มีสมาชิกตัวเดียวเช่นกัน ชื่อ static void main(string[ ] args) {..} คิดว่า คงมีคำถามในใจ มากมาย ว่า public , string, static, void, main( ) คืออะไร โอเค นี้เป็นคำถามที่น่าจะถาม การตอบคำถามเหล่านี้ คิดว่ายังไม่ถึงเวลา กว่าจะรู้ความหมายของศัพท์เหล่านี้ได้ คิดว่า คงต้องอ่านไปเกินครึ่งหนังสือเล่มนี้แล้ว อย่างนี้ก็ควรอ่านได้จบบทที่แปด เพราะคำถามเหล่านี้เกี่ยวข้องกับอะไรมากมาย การตอบ คำถามเหล่านี้นะตอน นี้อธิบายอย่างไรก็ยังไม่เข้าใจ อดใจรอไปก่อนนะ เพราะบทนี้แค่ต้องการให้รู้ IDE และการสร้างแอปแบบต่างๆ เท่านั้น เมื่อเปรียบเทียบกับที่ผ่านมา บรรทัด Home h = new Home( ) ; เป็นการสร้างวัตถุพร้อมๆ กับนำไปเก็บในค่าตัวแปร h เลย (ซึ่งก็เร็วดี ไม่ต้องสร้างสองบรรทัดดังโปรแกรมที่แล้วมา) และมีการกำหนดค่าให้กับ address ว่าเท่ากับอะไร หลังจากนั้น ก็นำค่านี้มาแสดงที่หน้าจอด้วยคำสั่ง Console.WriteLine( …) โดยส่งผ่านตัวแปร h.address สังเกตอย่างหนึ่งไหมว่า มี { 0 } รวมในคำสั่งนี้ด้วย ซึ่งหมายความว่า ตัวแปรที่ ศูนย์ (ตัวแปรแรก) ถ้า มี { 1 } หมายความว่าตัวแปร ที่ 1 (ตัวแปรที่สอง ) เป็นเลขลำดับตัวแปร เริ่มต้นที่ศูนย์ และต้องมีตัวแปรเข้า ด้วย ในที่นี้คือ h.address เป็นลำดับตัวแปรแรก ลำดับตัวแปรตัวแต่ไป จะใช้เครื่องหมาย จุลภาคคั้น เช่น Console.WriteLine( “{ 0 } { 1 } “, a, b ); C# Programming with Visual C# 2010 Express

10 การสร้างแอสแซมบลีจากคอมมานด์ไลน์
คอมไฟล์โปรแกรมได้ทั้งจากเมนู Debug > Start Debugging หรือใช้ผ่าน คอมมานด์พรอมต์ ด้วยคำสั่ง csc ส่วนที่คอมไฟล์ได้แล้ว จะได้ไฟล์ นามสกุล .exe หรือ .dll จะเรียกไฟล์นี้ว่า แอสแซมบลี ไฟล์ แอสแซมบลี สามารถนำไปใช้งาน ด้วยตัวเอง (.exe) หรือใช้โปรแกรมอื่นใช้งาน (.dll) การสร้าง แอสแซมบลีจากคอมมานไลน์ ดูตัวอย่างจากรูปนี้ ในเมนู มี Visual Studio Command Prompt (2010) นี้ จะมีได้ ต้องลง Visual C++ Express ด้วย ซึ่งไม่ลงก็ทำให้ยุ่งยากหน่อย เพราะจะต้องสร้าง Command Prompt เอง ให้รู้จัก การคอมไฟล์โปรแกรมได้ คิดว่าลง Visual C++ อีกนิด จะเร็วกว่า การสร้างคอมมานพร้อม การคอมไพล์ผ่านคอมมานพร็อมก็สามารถทำได้ เช่นเดียวกับการคอมไฟล์ผ่าน Visual C# แต่ดูจะยุ่งยากนิดหนึ่ง แต่นี้เป็นการสาธิตว่า สามารถทำได้ด้วย การคอมไพล์โปรแกรมได้ ผลคือจะได้ แอสแซมบลี ซึ่งจะเป็นไพล์ exe หรือ dll สำหรับไฟล์ exe สามารถทำได้ตัวเอง ส่วนไพล์ dll จะใช้สำหรับให้โปรแกรมอื่นเรียกใช้งาน ในภาคปฏิบัติที่ 1 ท้ายบท จะมีการให้ทดลองสร้างแอป จากคอมมานไลน์ สำหรับในหนังสือหน้า 48 ก็เป็นการสร้างแอปจากคอมมานไลน์ ที่ให้แสดงผลข้อมูลในรูปแบบต่างๆ เช่น แสดงเป็นรูปแบบเงินตรา (Currency) การแสดงในรูปแบบ Decimal ลองทดลองดูให้โปรแกรมแสดงผลในรูปแบบต่างๆ ดู ว่าตรงกับ ผลลัพธ์ในหนังสือหรือไม่ C# Programming with Visual C# 2010 Express

11 การสร้างวินโดว์ฟอร์มแอปพลิเคชัน
วินโดว์ฟอร์มแอป. มีใช้งานตั้งแต่รุ่น แรกๆ ของภาษาในรูปแบบ Visual เลือกสร้าง Application จาก Template แล้วเลือกเป็นแบบWindows Forms Application ใช้เน้นติตต่อกับผู้ใช้งานด้วยรูปกราฟิก (User Interface) ซึ่งเรียกว่าคอนโทรล (เพราะมีส่วนที่มองเห็นและดำเนินการ ได้) คอลโทรล เกือบทั้งหมดอยู่ใน Tool Box มีลักษณะการทำงานแบบ Event Driven นักเขียนโปรแกรมรุ่นแรก ชื่นชอบ การเขียนโปรแกรมแบบวิสชวล มากก็เพราะ Windows Form นี้แหละ จะเห็นว่า การเขียนโปรแกรม บนเดสท๊อป ที่มีการเขียนโปรแกรมแบบมี Graphic User Interface บนระบบปฏิบัติการวินโดว์ เกือบทั้งหมด ใช้ Windows Form ซึ่งแม้ตอนนี้ ก็ยังคงใช้กันอยู่ การเขียนโปรแกรมแบบนี้ จะใช้ คอนโทรล (Control) ใน Toolbox ดังรูปซ้ายมือ ให้เลือกใช้งาน ทำได้โดยการหยิบ คอนโทรล มาวางที่ หน้าวินโดว์ฟอร์ม ก่อนอื่นต้อง สร้างแอปฯ จากแทมเพลท Windows Form Application ก่อน คอนโทรล ที่ปรากฎในทูลบ๊อก มีการเรียงกันตามลำดับอักษร คอนโทรลที่ใช้บ่อย ๆ คือ Button เป็นบุ่มคำสั่ง ทำงานเมื่อคลิก การทำงานเมื่อคลิก ในลักษณะนี้เรียกว่า Event Driven หรือทำงานตามเหตุการณ์ ทุกคอลโทรล ทำงานตามเหตุการณ์ เช่น คอนโทรล TextBox มีเหตุการณ์ที่กำหนดให้ทำงานได้ มากมายเช่น เมื่อเม้าท์ลากผ่าน เมื่อคลิก เมื่อออก เมื่อเข้า สามารถกำหนดให้เกิดการทำงานผ่านเหตุการณ์เหล่านี้ได้ เช่น เมื่อเม้าท์คลิก ให้แสดงข้อความบางอย่าง ทดลองเขียนโปรแกรมประเภทนี้ โดยการวาง Button บนฟอร์ม ให้เมื่อคลิกปุ่มนี้ ให้แสดงข้อความ Hello World เป็น MessageBox ทำได้โดยการดับเบิลคลิก Button แล้ว จะเข้าสู่ หน้าให้เขียนโปรแกรม ให้เขียนต่อไปนี้ ดู MessageBox.Show( “Hello, World”); และรันโปรแกรมดูผลการทำงาน (ตามโค้ด 2.2 หน้า 49-50) นี้คือวินโดว์ฟอร์ม แอปฯ อย่างง่าย C# Programming with Visual C# 2010 Express

12 การสร้าง WPF แอปพลิเคชัน
WPF แอป. ตั้งใจจะมาทดแทน Windows Forms ในรูปแบบไฟล์ XAML (อ่านว่า แซม-มอล) ย่อมาจาก eXtensible Application Markup Language) เลือกสร้าง Application จาก Template แล้วเลือกเป็นแบบ Windows WPF Application โดยทั่วไปยังคงเขียนโปรแกรมคล้ายกับ Windows Form ใน ลักษณะการทำงานแบบ Event Driven Silverlight เป็นส่วนย่อย และย่อของ WPF แต่ทำงานกับ Brower หรือ คอมพิวเตอร์ทีกินทรัพยากรน้อยกว่า และ ต้องการความปลอดภัยกว่า นี้คือ แอปฯ ใหม่ ที่จะมาแทน Windows Form แอปฯ ด้วยเหตุผลของวิวัฒนาการ ไมโครซอฟ คงใม่เอาอะไรที่แย่กว่า มากแทนของเดิมแน่ แต่นี้คือเรื่องใหม่ นักพัฒนาคงต้องใช้เวลาอีกนาน กว่าจะตามทันเทคโนโลยีนี้ เหมือนกับที่หลายๆ สถาบันการศึกษา ยังคงใช้ VB6 สอนนักศึกษา (ผมสงสารเด็กจังเลย อาจารย์เอาของโบราณ มาหากินกันอยู่อีก ไม่ว่าโลกจะไปทางไหน ยังใช้ของสิบที่ที่แล้ว สอนกันอีก โดยเฉพาะ การโปรแกรมคอมพิวเตอร์ ที่เขายกเลิกพัฒนากันแล้ว น่าจะถามอาจารย์นะ ทำไมทำกับผมอย่างนี้ คือมันมีเหตุผลอยู่บ้างกับบางกับระบบที่ใช้งานแบบนี้อยู่ก็มี นั้นเป็นข้อยกเว้น ) วันนี้แม้ว่าจะทำมาหากินกับวินโดว์ฟอร์ม ได้อีกหลายปี ก็จริง แต่แอปฯ แนวนี้ ก็มีพื้นฐานจากของเดิม ศึกษาอีกหน่อย (แม้จริงๆ ไม่นิดหน่อย) การศึกษาเรื่องนี้ในบทนี้เพียงแค่แนะนำการใช้งาน แรกเริ่ม ให้รู้จักแทมเพลนี้บ้าง การหารายละเอียดการใช้งานจาก หนังสือภาษาไทย ก็มีอยู่สักเล่มหนึ่ง ผมเคยเห็น ลองไปหาอ่านดู แต่อีกสัก ปี คงมีหนังสือแนวนี้เยอะ อย่างน้อยผมก็เป็นคนหนึ่งที่จะพยายามให้มีหนังสือภาษาไทยเรื่องนี้ ออกให้ได้ภายในหนึ่งปี (กว่าๆ เพื่อไม่ว่าง ) แอปฯ ตัวนี้ ใช้เอกสาร Xaml เป็นหลักในการแสดงผลกราฟฟิก เอกสารชนิดคล้ายกับเอกสาร xml ทำงานร่วมกับ ไฟล์ .cs ที่เก็บโค้ดภาษา C# การเขียนโปรแกรม ยังคงใช้ Event Driven ที่ทำงานตามเหตุการณ์ต่างๆ ที่เกิดขึ้นกับคอนโทรล โดยคอนโทรลอยู่ที่ ไฟล์ xaml คอนโทรลเหล่านี้คล้ายกับคอนโทรลของวินโดว์ฟอร์ม อาจเริ่มทดลองเขียนโปรแกรมให้ มีข้อความแสดงว่า Hello, World ทำเหมือนกับ วินโดว์ฟอร์มเลย ทดลองกันดูนะ นอกจากนี้ ยังมีเรื่อง Silverlight ที่เป็นส่วนย่อยของ WPF ที่เน้นการทำงานกับ เว็บแอปฯ เรื่องนี้หาอ่านยากหน่อยในหนังสือภาษาไทย คงต้องรออีกสักปี แต่หาอ่านไม่ยากเลย สำหรับหนังสือภาษาอังกฤษ ลองค้นดู C# Programming with Visual C# 2010 Express

13 ข้อดี และเสีย ของการใช้ WPF
ทำงานร่วมกับชิปประมวลภาพสมัยใหม่ได้ดีกว่าเดิม สนับสนุน DirectX, Direct3D (ของเดิม วินโดว์ฟอร์ม ใช้ GDI, GDI+) แยก ส่วนการแสดงผลและตรรกะการทำงานออกจัดกันชัดเจน (ให้ลองนึกถึงการใช้ CSS, HTML, PHP) บรรจุอ๊อปเจ็คต่างๆ ได้ไม่จำกัด จากของเดิม Label ก็บรรจุ ได้เพียงอักษร และมีข้อดีอื่นๆ อีกมากมาย ข้อเสีย ผู้ใช้ต้องเรียนรู้ใหม่ ซึ่งหมายความว่าต่อไป รุ่นเดิมจะไม่ พัฒนาต่อแล้ว (แต่ยังมีใครหลายคนพัฒนาโปรแกรมโบราณ เช่น VB6) ขณะนี้คอนโทรลบางตัวหายไป เช่น DateTimePicker เมื่อต้องการใช้ WPF แทนของเดิม ย่อยมีเหตุผล ที่ต้องตอบว่าทำไม ต้องแทนของเดิม ในเมื่อของเดิมก็อยู่ ซึ่งถ้าของเดิมดีพอ ก็ ไม่จำเป็นต้องหาอะไรมาแทน เข้าใจว่าเป็นเรื่องของเทคโนโลยี ที่เปลี่ยนแปลงมากว่า การเปลี่ยนนี้ถือเป็นครั้งยิ่งใหญ่ เหมือนที่เปลี่ยนเคยเปลี่ยนเป็นเทคโนโลยีดอทเน็ต เคยใหมว่า ลงโปรแกรม VB6 ใน Window 7 ไม่ได้ หรือลงแล้ว คาดเดาไม่ได้เลยว่า จะทำได้ปกติหรือไม่ นั้นเพราะเทคโนโลใหม่ไม่สนับสนุนการใช้งานในรุ่นเก่าแล้ว และในทำนองเดียว ของใหม่มากเกินไป ลงกับระบบเก่าๆ ไม่ได้เช่นกัน มีเสียมีได้ แล้วแต่ว่าจะเลือกอยู่ที่ในของเทคโนโลยี แต่แนวโน้มไปทางของใหม่ มากว่า จะย้อนกลับไปใช้ของเก่า (ในวงการคอมพิวเตอร์ ) ที่นี้มีอะไรที่เด่นสำหรับเทคโนโลยีใหม่นี้ เหตุผลหลักคือ การแสดงผลหน้าจอได้ดีขึ้น ในขนาดไฟล์เล็กลง แต่อาจใช้พลังานซีพียูเพิ่มขึ้น แต่ตอนนี้พลังซีพียู มีพลังมากพอแล้ว ชิปแสดงผลรุ่นใหม่ๆ สนับสนุนการใช้งานในรูปแบบสามมิติได้ดีขึ้น ภาพชัดขึ้น ด้วยการรูปแบบการแสดงผลของ WPF เก็บภาพในรูปเว็คเตอร์ ที่ขยายภาพได้โดยที่ภาพยังคมชัดเท่าเดิมได้ คอนโทรลแบบใหม่ สามารถทำงานได้มีความยืดหยุ่นมากขึ้น เติมคอลโทรลลงในคอนโทรลได้ เหมือนกับการจัดหน้าเอกสาร html ที่เติมข้อมูลได้หลากหลาย แยกส่วนการแสดงผลกับโค้ดการทำงานตรรกะธุรกิจได้ชัดเจน เหมือนกับเอกสาร html กับไฟล์ Css ทำงานร่วมกับโค้ด ภาษา PHP ของ PHP เว็บแอปฯ ข้อเสียที่ยิ่งใหญ่ และเป็นเหตุผลหลักที่ไม่น่าเลือกใช้ สำหรับผมคิดว่า ต้องศึกษาใหม่อีกแล้วหรือ หากินกับของเดิมไม่ได้แล้วหรือ เพิ่งจะใช้ของเดิมเป็น อืม.. ลืมไปเลยสำหรับนักคอมพิวเตอร์ นี้คือความเพลิดเพลิน อ่านได้อ่านเอา อาจารย์ก็เถอะ ยังสู้คนชอบศึกษาด้วยตนเองไม่ได้ C# Programming with Visual C# 2010 Express

14 ไฟล์หลักใน WPF แอปพลิเคชัน
ชนิดไฟล์ คำอธิบาย App.xaml เก็บค่าคุณสมบัติของวินโดว์ทั่วไป สำหรับแอปพลิเคชัน รวบทั้งทรัพยากร ที่ใช้ในแอปพลิเคชัน App.xaml.cs เป็นโค้ดภาษา ซีชาร์ป ที่ทำงานขณะรันไทม์ (run time) ที่เป็นเหมือนตรรกะการทำงานของโปรแกรมในระดับแอปพลิเคชัน MainWindow.xaml เป็นค่าที่เก็บคอนโทรล และรูปแบบการวางคอนโทรลที่ใช้ใน GUI ขณะที่ออกแบบโปรแกรม (design time) ซึ่งสามารถเปลียนแปลงได้ทั้งในหน้าต่างพร็อบเพอร์ตี้ และแก้ไขโดยตรงในโค้ด MainWindow.xaml MainWindow.xaml.cs เป็นโค้ดภาษา ซีชาร์ป ที่ทำงานขณะรันไทม์ ที่เป็นเหมือนตรรกะการทำงานของโปรแกรมในระดับฟอร์มของ MainWindow.xaml สำหรับรูป ชนิดของไฟล์ต่าง ดูได้ที่หน้า 52 ตาราง 2.5 เป็น ชนิดไฟล์พื้นฐานของ WPF แอปฯ อ่านๆ ผ่านๆ แล้วกันนะ ให้ดูตอนสร้าง WPF ลองเปิดอ่านเหล่านี้ จากหน้าต่าง Solution Explorer C# Programming with Visual C# 2010 Express

15 ตัวอย่างคอนโทรลของ WPF
ชื่อคอนโทรล คำอธิบาย XAML Button ใช้คอนโทรลนี้สำหรับเป็นปุ่มคำสั่ง คอนโทรลนี้ใช้มากที่สุด ใช้งานเหมือนกับคอนโทรล Button ของวินโดว์ฟอร์ม <Button Name="myButton" BorderBrush="Black" BorderThickness="1" Click="myButtonOnClick" ClickMode="Press“> OK </Button> CheckBox เป็นการแสดงข้อมูลในรูปการเช็ครายการ มีค่าเป็น true/ false <CheckBox Content="CheckBox" Name="checkBox1"/> ComoBox เป็นการแสดงข้อความแบบกล่องรายการ ข้อมูล <ComboBox Name="myComboBox"> <ComboBoxItem> Item a </ComboBoxItem> <ComboBoxItem> Item b </ComboBox> Grid ใช้สำหรับบรรจุคอนโทรลอื่นๆ และจัดการวางตำแหน่งของหน้าจอ <Grid ShowGridLines="True" Width="200" Height="200"> </Grid> Label ใช้สำหรับแสดงข้อความแบบสเตติกที่แก้ไขข้อมูลไม่ได้ <Label Name="myLabel"> Name: </Label> ตารางนี้ต้องการแสดงให้เห็นว่า คอนโทรลต่างๆ มีรูปแบบ xaml ในเท็กต่างๆ ที่คล้ายกับเท็กของ html มาก และยิ่งคล้ายมากกับ asp.net แนวโน้มไปสู่ไฟล์ xml หมดแล้ว เป็นรูปแบบไฟล์ เอกสารที่สื่อสารได้ง่าย มีความหมายที่กำหนดได้เอง ตัวอย่าง คอนโทรล Button เป็นปุ่มคำสั่ง ที่บรรจุอยู่ในเท็ก < Button> และปิดด้วย แท็ก </Button> เป็นไปตามกฎของเอกสาร xml หรือ html <Button Name="myButton" BorderBrush="Black" BorderThickness="1" Click="myButtonOnClick" ClickMode="Press“> OK </Button> ภายในเท็ก Button นี้ กำหนด attribute เพิ่มเติมว่า ชื่ออะไร (name) ขอบมีสีอะไร (BorderBrush) ความหน้าของของเขตขนาดเท่าได้ (BorderThickness) และรับ Event อะไร (Click) และรูปแบบคลิกเป็นแบบใด (ClickMode) และมีข้อความในคอนโทรลนี้ว่าอะไร (OK) C# Programming with Visual C# 2010 Express

16 อีเว้นท์ ในคอนโทรลของ WPF
คอนโทรลของ Button ในไฟล์ .xaml <Button Name="Button1" Click="Button1_Click"> OK </Button> เมธอดที่รับการทำงานคอนโทรลของ Button ในไฟล์ .cs private void Button1_Click(object sender, RoutedEventArgs e) { // Code to do something here. } หน้าตาของ หน้าต่าง Properties ของ Button เมื่อกำลังทำงานกับ คอนโทรล ของ WPF แอปฯ อยู่ เราสามารถคลิก เข้าสู่อีเว้นท์ โดยตรงผ่าน Button ได้เลย หรือ คลิกผ่าน แทบอีเว้นท์ ของ Properties ของ คอนโทรลนี้ รูปบนขวามือ มาจากไฟล์ .xaml ที่แสดงเฉพาะส่วน คอนโทรลนี้ และรูปล่าง ขวา เป็นส่วนโค้ด C# ในไฟล์ .cs เราสามารถเขียนโค้ดการทำงานในส่วนนี้ได้ C# Programming with Visual C# 2010 Express

17 การสร้างคลาสไลบรารี คลาสไลบรารี คือโปรแกรมที่สร้างเพื่อให้โปรแกรมอื่นๆ ได้ใช้งาน คอมโพเน้นท์ (Component) จัดเป็นคลาสไลบรารี่อย่าง หนึ่ง ที่ให้โปรแกรมอื่นๆ นำไปใช้งาน คอนโทรล ก็เป็นคลาสไลบรารี่อย่างนี้ แต่ใช้เป็น GUI การสร้างคลาสไลบรารี่เริ่มจาก การเลือกโปรเจ็คใหม่แล้ว เลือกเทมเพลท เป็น class Library คลาสไลบรารี่จะไม่มีเมธอด Main( ) ซึ่งเมธอดนี้จะเป็น จุดเริ่มต้นให้โปรแกรมทำงานได้ คลาสไลบรารี่ จึง เปรียบเสมือนสร้างเป็นหน้าที่การทำงานให้โปรแกรม เรียกใช้ นี้เป็นแอปฯ สุดท้าย ในบทนี้ ที่ให้ทดลองสร้าง จากเทมเพลท มีหลายวิธีที่สร้าง class library และนำไปใช้งาน เช่น สร้าง class library หนึ่งโปรเจ็ค และแอปฯ ใช้งานอีกหนึ่งโปรเจ็ค ให้ทั้งสองตัวอยู่ Solution เดียวกัน กับ แยกคนละโซลูชัน แต่ให้ copy ไฟล์ .dll ของ class library มาเก็บในโปรเจ็คของ แอปฯ ใช้งาน ในการทำงานนี้จะสาธิ การแบบหลังให้ดู ซึ่งดูได้จาก ไฟล์วีดีโอที่ YouTube.com ที่อยู่ในหน้าเว็บผู้เขียน ที่เป็นตามโค้ด 2.8 และ 2.9 ทีนี้มารู้จัก class library ว่าคือ อะไร คลาสไลบารี่คือ โปรแกรมชนิดหนึ่งที่มีให้โปรแกรมอื่นเรียกใช้งาน มีนามสกุลเป็น .dll คลาสไลบารี่นี้ อาจอยู่ในรูป คอมโพเน้นท์ หรืออยู่ในรูปคอนโทรล หรือรูปอื่นๆ ความแตกต่างระหว่างสองตัวนี้คือ คลาสไลบารี่มองไม่เห็น แต่คอนโทรลมองเห็นได้ เช่น button เป็นปุ่มที่มองเห็นได้มักเป็นส่วนของ GUI เมื่อสร้างคลาสไลบารี่ จากเทมเพลท จะพบว่า ไม่มีเมทธอด main( ) ซึ่งเมธอดนี้ จะเป็นจุดเริ่มต้นให้โปรแกรมทำงาน แต่คลาสไลบารี่ เป็นโปรแกรมที่ให้โปรแกรมอื่นเรียกใช้งาน จึงเป็นเหตุผลว่า คลาสไลบารี่จึงไม่มีเมธอด Main( ) C# Programming with Visual C# 2010 Express

18 ตัวอย่างการเรียกใช้ Class1
namespace ClassLibrary1{ public class Class1 { private String anser; public Class1() { Console.WriteLine("Hello, What your name?"); anser = Console.ReadLine(); Console.WriteLine("Hello, {0}", anser); Console.ReadKey(); } using ClassLibrary1; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Class1 com1; com1 = new Class1(); }}} ดูตัวอย่างการเขียนโปรแกรมนี้จากไฟล์วิดีโอ C# Programming with Visual C# 2010 Express

19 Debugging & Tool การดีบัก (Debugging) โดย ใช้ Visual C# 2010 Express ที่มีเครื่องมือแก้ไข ตรวจสอบ การทำงานที่ผิดพลาด โดยเฉพาะความผิดพลาดทาง ตรรกะ หรือแนวคิด (logic error) เช่น เราคาดว่า โปรแกรมน่าทำงานใน แนวทางที่ตั้งใจไว้ แต่ ผลลัพธ์กลับไม่เป็นไปตามที่ คาดหวัง นั้นแสดงว่าเกิด ความผิดพลาดในแนวคิด เมื่อต้องเขียนโปรแกรมหนึ่ง เป็นธรรมดาที่อาจผิดพลาดได้ ใน Visual C# มีเครื่องมือในการ ดีบัก ที่ใช้งานได้ง่าย ลองนึกถึงการเขียนโปรแกรม ที่ไม่ค่อยมือดีบักโปรแกรมดู การหาจุดที่ผิดของโปรแกรม ที่มีขนาดโปรแกรมขนาดใหญ่ มีจำนวนบรรทัดมาก คงลำบากมากที่จะต้องไล่โค้ด ผมเขียนโปรแกรมบนเว็บ ด้วยภาษา รูบี้ ซึ่งเป็นภาษา ที่มีหลักเกณฑ์ ทางภาษายืดหยุ่นมาก เช่น เขียน คำสั่งเดียวกัน เขียนได้ตั้งหลายแบบ ชนิดข้อมูลก็ไม่ต้องระบุ แค่นี้หากผิดพลาดขึ้นมา ตกลงมันผิดตรงใหนกันแน่ และยิ่งไม่มีเครื่องมือดีบักที่ดี ผมใช้กับ Netbean โอ้พระเจ้า เหมือนต้องแกะโค้ดใหม่ทุกครั้ง เทียบกับ Visual C# ดังฟ้ากับเหวเลย ที่เล่ามาอาจเวอร์ไป หน่อย แต่อยากให้เห็นความสำคัญว่า มันช่วยได้เยอะจริงๆ ถ้ามีเครื่องมือดีบัก ดีๆ สักตัว ในตอนนี้ข้ามไปได้เลย กับที่จะเขียนโปรแกรมผิด ที่เกิดจาก ไวยกรณ์ (Syntax error) เพราะทันที่เขียนผิด Visual C# แจ้งเป็นตัวแดงเลย ก็เห็นการขีดเส้นใต้สีแดง ก็แปลว่า ไม่ต้องคอมไพล์แล้ว เพราะไม่ผ่านอยู่แล้ว จึงต้องแก้ไวยกรณ์ให้ถูกต้องเสียก่อน แต่ที่เขียนถูกไวยกรณ์ แต่ผลออกมาไม่ตรงกับที่คาดหวังไว้ สัญนิฐานได้เลยว่า มีความผิดพลาดทางตรรกะแนวคิดแล้ว (Logic error) เมื่อมีความผิดพลาดนี้เกิดขึ้น ทางหนึ่งที่จะสืบค้น คื่อใช้เครื่องมือสืบค้น ของ Visual C# ตรวจหาสาเหตุ แนวคิดที่ผิดพลาด C# Programming with Visual C# 2010 Express

20 ความหมายของเมนู Debug
คำสั่งที่ใช้ คำอธิบาย Start Debugging คำสั่งนี้ทำงานได้ทั้งขณะโปรแกรมยังไม่เริ่มทำงาน โดยทำการเริ่มทดสอบตั้งแต่เริ่มต้น โดยมากเรามักใช้คำสั่งนี้ และทำงานได้ขณะโปรแกรมทำงานไปแล้ว โดยเริ่มทำงานตั้งแต่จุด Breakpoint ที่ตั้งไว้ Build Solution ใช้คำสั่งนี้สำหรับสร้างแอปพลิเคชัน ไม่สามารถทำการตรวจสอบความผิดพลาดทางด้านตรรกะ มักใช้คำสั่งนี้กับการสร้างไลบารีแอปพลิเคชัน Step Info ใช้คำสั่งสำหรับการเริ่มดีบัก และหยุดทีละคำสั่งของโค้ดที่เขียน Step Over ใช้คำสั่งนี้สำหรับการเริ่มดีบัก และหยุดทีละหนึ่งโปรเซเดอร์ Toggle Breakpoint เป็นการให้โปรแกรมหยุดทำงานที่บรรทัดที่ต้องการ Windows ใช้สำหรับดูรายงานผ่านหน้าต่าง Output และ Immediate Output : ใช้หน้าต่างนี้สำหรับตรวจสอบความผิดพลาด และข้อความเตือนต่างๆ Immediate : ใช้สำหรับประเมินการทำงานของแต่ละคำสั่ง และแสดงค่าของตัวแปรต่างๆ ที่นี้มาดู เมนู debug กันว่า มีรายการอะไรบ้าง Start Debugging เป็นเมนูพื้นฐานเลย แต่เรามักไม่ค่อยเข้ามากดรายการนี้เหรอกนะเพราะมักใช้ menu tool bar ที่เป็น สามเหลี่ยมสี่เขียน เหมือนเครื่องหมาย play หนัง กดเลย สำหรับคอนโซลแอป มันจะไม่หยุดให้ จะต้องใช้ คำสั่ง Console.ReadLine( ); ที่รับคำสั่งจาก Enter หรือ Console.ReadKey( ); ที่รับคำสั่งจากคีย์ใดๆ จากคีย์บอร์ด Build Solution เมนูนี้จะไม่มีการให้เราดีบักโปรแกรมเหมือนกับ Start Debugging เราใช้กับการสร้างแอปฯ ขึ้นมาใหม่เมื่อต้องการใช้แน่ใจว่า จะได้แอสแซมพลี ตัวใหม่ ที่ได้แก้ไขโค้ดไปแล้ว หรือใช้กับคลาสไลบารี่ Step Into กับ Step Over และ Toggle Breakpoint สามตัวนี้มักใช้ร่วมกัน โดย Toggle Breakpoint ใช้กับการให้หยุดโปรแกรมที่บรรทัดใด (คือว่าโปรแกรมมันยาวมาก หลายไฟล์ จะให้ทำงานที่ละบรรทัดคงไม่ไหว) เมื่อได้จุดที่เราสนใจจะดีบักแล้ว ก็ทำงานเลื่อนไปตรวจสอบที่ละบรรทัด ด้วยการใช้ Step Into การใช้ตัวนี้ ใช้คีย์ลัด ไม่ได้กดที่เมนูนี้นะ และเมื่อเห็นว่าช้าไป ไม่ใช้ประเด็นที่จะตรวจสอบ กดคีย์ลัดของ Stop Over ไปเลย ที่จะกระโดดที่ฟังก์ชัน Windows เป็นหน้าต่างอื่นๆ ที่ดูผลการทำงาน และประเมินคำสั่งของตัวแปรต่างๆ เมื่อใช้ร่วมกับ Step Into , Step Over ซึ่งทดลองการทำงานได้จาก ปฏิบัติการ ที่ 5 ของบทนี้ C# Programming with Visual C# 2010 Express

21 ทำถามทบทวน เราสามารถเขียนโปรแกรมด้วย ซีชาร์ป ได้ด้วยโปรแกรม Notepad.exe ได้ หรือไม่ หากทำได้ทำไมเราไม่ใช้โปรแกรม Notepad.exe เขียน ซีชาร์ป เราควรเลือกเทมเพลทใดสำหรับ แอปพลิเคชันและความต้องการต่อไปนี้ สร้างแอปพลิเคชันที่ทำงานวินโดว์ ที่ส่วนติดต่อกับผู้ใช้เป็นกราฟฟิก สร้างแอปพลิเคชันที่ทำงานบนเบราเซอร์ชนิดต่างๆ ได้ สร้างหน้าที่การทำงานที่ให้แอปพลิเคชันอื่นนำไปใช้งาน การเรียกเปิดโปรเจ็ค หรือโซลูชั่น ควรเรียกจากไฟล์ใด ถ้าต้องการคลาส Console ซึ่งอยู่ในส่วนหนึ่งเนมสเปส System จะเรียกใช้คลาส คลาสนี้ได้อย่างไร เมทธอด Main ของคอนโซลแอปพลิเคชันมีไว้เพื่ออะไร ทำไมจึงควรเลือกใช้พัฒนาด้วย WPF มากใช้วินโดว์ฟอร์ม การสร้างคลาสไลบารีมาใช้เองเพื่ออะไร ทำไมมักใช้เครื่องมือดีบักแก้ไขความผิดพลาดทางตรรกะ (logic error) มากกว่า ใช้เครื่องมือดีบักแก้ไขความผิดพลาดในไวกรณ์ภาษา (syntax error) ไฟล์ .XAML คล้ายกับภาษาอะไร และทำหน้าคล้ายกับภาษาอะไร การสร้างอีเวนท์ของให้คอนโทรของ WPF แอปพลิเคชัน จะต้องระบุชื่ออีเวนท์ และชื่อเมทธอดที่รับการทำงานของอีเวนท์ที่ไฟล์ใด เหตุการณ์ใดที่ต้องการใช้การดีบัก Step Into และ Step Over C# Programming with Visual C# 2010 Express

22 Lab2.1 สร้างโปรแกรมด้วยการใช้คอมมานไลน์
เขียนตามโค้ด 2.1 ด้วยโปรแกรม Notepad และบันทึกไฟล์ ชื่อ Lab2.1.cs คอมไฟล์ไฟล์ ด้วยคำสั่ง csc Lab2.1.cs ในโหมด Command Prompt (ต้องไปยังไดเร็กทรอรี่ที่มีไฟล์ Lab2.1.cs ก่อน ใช้คำสั่ง cd เพื่อเปลี่ยนไดเร็กทรอรี่ เช่น cd c:\temp หมายถึง ไปยังใดเร็กทรอรี่ temp) ดับเบิลไฟล์ผลลัพธ์ Program.exe และสังเกตผลลัพธ์ จะได้ “Hello World” C# Programming with Visual C# 2010 Express

23 Lab2.2 สร้างโปรแกรมด้วยการใช้คอมมานไลน์ และการรับตัวแปรเข้า
เขียนโค้ดด้วยโปรแกรม Notepad และบันทึกไฟล์ชื่อ Lab2.2.cs คอมไฟล์ไฟล์ ด้วยคำสั่ง csc Lab2.2.cs ในโหมด Command Prompt ในโหมด Command Prompt พิมพ์คำสั่ง Lab2.2.exe และ สังเกตผลลัพธ์จะปรากฏ “args must equal 2” ในโหมด Command Prompt พิมพ์คำสั่ง Lab2.2.exe 1 2 และสังเกตผลลัพธ์ (มีผลดังรูปด้านล่างนี้) C# Programming with Visual C# 2010 Express


ดาวน์โหลด ppt 2. เริ่มต้นใช้ Visual C# 2010 Express

งานนำเสนอที่คล้ายกัน


Ads by Google