ในเมื่อ C# นั้นเป็นภาษาเชิง OOP 100% การที่จะข้ามการกล่าวถึง Object ไปดูจะเป็นอะไรที่ไม่สมเหตุสมผลเอาเสียเลย งั้นเรามาทำความเข้าใจกันก่อนดีกว่าครับ
อ๊อบเจ็ค (Object)
เกริ่นให้เข้าใจเกี่ยวกับอ๊อบเจ็คกันซักเล็กน้อย ในชีวิตประจำวัน อ๊อบเจ็ค คือ วัตถุที่สามารถสัมผัสได้ทั้งทางตรงและทางอ้อม และมีคุณสมบัติและความสามารถหลายประการ
ในทางโปรแกรมมิ่งนั้น ความหมายของอ๊อบเจ็คไม่ได้แตกต่างจากในชีวิตประจำวันครับเพียงแต่เป็นการอ้างอิงให้รู้ว่า สิ่งที่เราสร้างหรือกำหนดขึ้นในโปรแกรมนั้นๆ มีลักษณะเฉพาะเจาะจง ความสามารถต่างๆ โดยที่เป็นอิสระจากสิ่งอื่นๆ ก็เหมือนกับสิ่งของวัตถุรอบๆตัวในชีวิตประจำวันนั่นเอง ที่มีการทำงานที่ต่างกันโดยสิ้นเชิง และไม่จำเป็นต้องสัมผัสได้เสมอไป
ยกตัวอย่างให้เข้าใจถึงอ๊อบเจ็คง่ายๆ เช่น ดินสอ (นี่ก็คือวัตถุ) คุณสมบัติ (property) ของดินสอ อาจจะมีลักษณะยาวหรือสั้น ตามแต่ชนิด ส่วนประกอบ แกรไฟต์ ความยาว ความกว้าง เส้นผ่านศูนย์กลาง นี่คือคุณสมบัติครับหรือจะเรียนลักษณะทางกายภาพก็ได้เช่นกัน ความสามารถ (Method) ของดินสอก็คือ สามารถทำให้เกิดลวดลายบนแผ่นกระดาษได้ นำไปเคาะทำให้เกิดเสียงได้ เป็นต้น สำหรับที่กล่าวมานี่เป็นการอธิบายอ๊อบเจ็คที่เรียกว่าดินสอนะครับ ดินสอก็มีหลายชนิดใช่ไหมครับ 2B เอย 3B เอย ในเชิงอ๊อบเจ็คจะเรียกชนิดของอ๊อบเจ็คว่า "Class" ครับจะเป็นการบ่งบอกชนิดของอ๊อบเจ็ค
**คุณสมบัติ (Property) ลักษณะทางกายภาพของวัตถุ เช่น ความกว้าง ความยาว ความสูง สี กลิ่น รส (ถ้ามีนะ)
**ความสามารถ (Method) ผลที่เกิดหรือพฤติกรรมเมื่อมีการใช้งานวัตถุ
เนื่องจากภาษา C# ก็เป็นหนึ่งในภาษาที่มีแนวคิดแบบ OOP
( Object Oriented Programming ) 100% จึงทำให้การเขียนโปรแกรมขนาดใหญ่เป็นเรื่องง่ายๆ เพราะการเขียนโปรแกรมจะเป็นในเชิงของวัตถุกล่าวคือ "เป็นอิสระจากกัน" ฟังดูอาจจะงงครับ ให้คุณผู้อ่านนึกถึงเครื่องคอมพิวเตอร์เครื่องหนึ่งที่มี ตู้ระบบรวมอุปกรณ์ต่างๆ อาทิเช่น แผงวงจรหลัก (เมนบอร์ด) การ์ดแสดงผล การ์ดเสียง ฮาร์ดดิส ฟรอปปี้ดิส และอีกมากมาย โอ๊คกำลังจะบอกว่า อุปกรณ์แต่ละมันทำหน้าที่เฉพาะเจาะจงของมันถูกไหมครับ การ์ดแสดงผลก็ควบคุมในส่วนของการแสดงผล การ์ดเสียงก็ควบคุมทางด้านเสียง ฮาร์ดดิสส่วนของการจัดเก็บข้อมูล เห็นไหมครับ แต่ละอุปกรณ์ล้วนมีหน้าที่เฉพาะเจาะจง เปรียบกับการเขียนโปรแกรมก็เช่นเดียวกัน เราจะเขียนการทำงานเฉพาะเจาะจงให้กับอ๊อบเจ็คแต่ละตัว โดยไม่มีความสัมพันธ์ใดๆต่อกัน เมื่อต้องการปรับแก้การทำงาน เราก็สามารถทำในส่วนของอ๊อบเจ็คนั้นๆได้ โดยที่เราไม่ต้องแก้โค้ดใหม่ทั้งหมด ซึ่งจะทำให้เสียเวลา หรือถ้าเป็นโปรแกรมใหญ่ๆก็จะเสียทั้งเงินต้นทุน และเวลามากมาย แนวคิด OOP จึงเป็นอีกทางเลือกของการเขียนโปรแกรมในปัจจุบัน
เพื่อเป็นแนวทางให้เข้าใจถึง อ๊อบเจ็ค อย่างดีก่อน แล้วเราจะมาพูดกันถึงการใช้งานของอ๊อบเจ็คกันอีกครั้ง.......