Restrictions on Properties
650710824 - Jakkapan Chompat
เนื้อหา
Properties คือ :
Properties คือ สมาชิกของคลาสที่ช่วยให้การอ่าน และ เขียนข้อมูลกับตัวแปรในคลาสทำได้สะดวกขึ้น โดยทำงานผ่านเมธอดภายในคลาส
Properties ในภาษา C# :
ในภาษา C# ตัวแปรที่เรียกว่า property เป็นเมธอดพิเศษที่เรียกว่า accessors ซึ่งช่วยให้การจัดการข้อมูลทำได้ง่ายขึ้น โดยที่ property จะประกอบไปด้วยเมธอดสองประเภท ได้แก่ เมธอด
getใช้สำหรับการอ่านค่าของตัวแปร หรือ เรียกใช้งานเมธอดอื่นภายในคลาส และเมธอดsetซึ่งใช้ในการกำหนดค่าจากภายนอกให้กับตัวแปรผ่าน property การใช้ property จึงช่วยเพิ่มความปลอดภัยและความสะดวกในการจัดการตัวแปรจากภายนอกคลาส
ตัวอย่างโค้ด ภาษา C# :
public class MyClass{
private string name;
public string Name {
get { return name; } // get คือตัวช่วยที่ให้เราสามารถเข้าไปเรียกดูข้อมูลได้
set { name = value; } // set คือตัวช่วยที่ให้เราสามารถเข้าไปเขียนข้อมูลได้
// value keyword คำสั่ง value ที่อยู่ใน set นั่นหมายถึงค่าที่ผู้ใช้ส่งมากำหนดให้ตอนเรียกใช้ property Name
}
}Restrictions on Properties ในภาษา C# :
การส่งผ่านพารามิเตอร์
refหรือoutไปยัง เมธอด:
ในภาษา C# Properties ไม่สามารถส่งค่าแบบ
refหรือoutไปยัง เมธอดได้ หมายความว่าเราจะไม่สามารถส่งค่าของ property ไปยัง เมธอดได้
การ Overload Properties :
ในภาษา C# การ overload properties ไม่สามารถมีเมธอด
getหรือ เมธอดsetมากกว่า 1 ตัวสำหรับ property เดียวกันได้ ไม่งั้นจะทำให้เกิดการ error ได้
การเปลี่ยนแปลงค่าตัวแปรในเมธอด
getaccessor :
ในภาษา C# Properties ไม่ควรเปลี่ยนแปลงค่าตัวแปรใน เมธอด
getaccessor เพราะ เมธอดgetถูกออกแบบมาสำหรับการดึงข้อมูล ไม่ใช่การแก้ไขค่าภายใน object
เปรียบเทียบกับภาษา C, Java, Python
ภาษา C :
ในภาษา C ไม่มี Properties แต่สามารถใช้ pointer เพื่อเข้าถึงค่าได้
ภาษา Java :
ในภาษา Java มีเมธอด
getterและ เมธอดsetterสำหรับการเข้าถึงค่าและปรับค่าของตัวแปร ที่เหมือนกับ Properties ในภาษา C#
ภาษา Python :
ในภาษา Python สามารถใช้
propertydecorator เพื่อสร้าง properties ได้ และสามารถเข้าถึงค่าได้โดยตรงผ่านค่าชื่อ proprety
ตัวอย่าง
ตัวอย่าง : Restrictions on Properties ในภาษา C# :
การส่งผ่านพารามิเตอร์
refหรือoutไปยัง เมธอด :
ในภาษา C# Properties ไม่สามารถส่งค่าแบบ
refหรือoutไปยัง เมธอด ได้ หมายความว่าเราจะไม่สามารถส่งค่าของ property ไปยัง เมธอด ได้
ตัวอย่างโค้ด ภาษา C# :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด property ใช้ เมธอด get และ เมธอด set ในการทำงาน เราเลยไม่สามารถส่งค่าแบบ ref หรือ out ได้ เนื่องจาก เมธอด ไม่มีพื้นที่เดียวกันในหน่วยความจำหมือนตัวแปร
การ Overload Properties :
ในภาษา C# การ overload properties ไม่สามารถมีเมธอด
getหรือ เมธอดsetมากกว่า 1 ตัวสำหรับ property เดียวกันได้ ไม่งั้นจะทำให้เกิดการ error ได้
ตัวอย่างโค้ด ภาษา C# :
ข้อผิดพลาดตอนคอมไพล์ :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด เกิดการ error เพราะ มีเมธอด get มากกว่า 1 ตัวสำหรับ property เดียวกัน
การเปลี่ยนแปลงค่าตัวแปรใน เมธอด
getaccessor :
ในภาษา C# Properties ไม่ควรเปลี่ยนแปลงค่าตัวแปรใน เมธอด
getaccessor เพราะ เมธอดgetถูกออกแบบมาสำหรับการดึงข้อมูล ไม่ใช่การแก้ไขค่าภายใน object
ตัวอย่างโค้ด ภาษา C# :
Ouput :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด มีการเปลี่ยนค่า _number ใน เมธอด get accessor ด้วยคำสั่ง this._number = 5; ซึ่งไม่ถูกต้อง เพราะ เมธอด get ใช้เพื่ออ่านค่าเท่านั้น ไม่ใช่แก้ไขข้อมูลภายใน object
เปรียบเทียบภาษา C, Java, Python
ภาษา C :
ในภาษา C ไม่มี Properties แต่สามารถใช้ pointer เพื่อเข้าถึงค่าได้
ตัวอย่างโค้ด ภาษา C :
Output :
ภาษา Java :
ในภาษา Java มีเมธอด
geterและ เมธอดsetterสำหรับการเข้าถึงค่าและปรับค่าของตัวแปร ที่เหมือนกับ Properties ในภาษา C#
ตัวอย่างโค้ด ภาษา Java :
Output :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด มีการสร้าง class Product พร้อมตัวแปรชื่อ title ในรูปแบบ private จากนั้นสร้าง เมธอด get และ เมธอด set
เมธอด
getชื่อ getTitle ดึงค่าตัวแปร title จาก classเมธอด
setชื่อ setTitle กำหนดค่าให้กับตัวแปร title ภายใน class
ภาษา Python :
ในภาษา Python สามารถใช้
propertydecorator เพื่อสร้าง properties ได้ และสามารถเข้าถึงค่าได้โดยตรงผ่านค่าชื่อ proprety
ตัวอย่างโค้ด ภาษา Python :
อธิบายเพิ่มเติม :
จากตัวอย่างโค้ด มีการสร้าง class C ที่มี property ชื่อว่า x ซึ่งสามารถใช้เพื่ออ่านค่า (get) และ กำหนดค่า (set) ของตัวแปร _x ได้
คลิปนำเสนอ
สไลด์นำเสนอ
แหล่งที่มาอ้างอิง
ในเว็บนี้ใช้ศึกษาความหมายของ Properties คืออะไร
ในเว็บนี้นำตัวอย่างโค้ด Properties ในภาษา C# มาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ Restrictions on Properties ในภาษา C# พร้อมกับนำตัวอย่างโค้ดมาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ
refและoutในภาษา C#
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ
GetterและSetterในภาษา Java
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ
propertydecorator เพื่อสร้าง properties ในภาษา Python พร้อมกับนำตัวอย่างโค้ดมาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ Pointers ในภาษา C พร้อมกับนำตัวอย่างโค้ดมาใช้
ในเว็บนี้ใช้ศึกษาหลักการทำงานของ เมธอด
getและ เมธอดsetในภาษา Java พร้อมกับนำตัวอย่างโค้ดมาใช้
Last updated

