Properties

Properties คืออะไร

Properties คือสมาชิกของคลาสที่ทำให้สามารถอ่านหรือเขียนข้อมูลให้กับตัวแปรในคลาสได้ซับซ้อนขึ้น โดยปกติจะใช้กับตัวแปรที่เป็น private ที่จะใช้กับ property

ในภาษา C# นั้น ตัวแปรที่เรียกว่า property จะเป็นเมธอดพิเศษที่เรียกว่า accessors ซึ่งจะเป็นตัวช่วยให้การอ่านข้อมูลได้ง่ายขึ้น รวมถึงความหลอดภัยและความยืดหยุ่นของการใช้คลาสตัวแปรในคลาสจากภายนอก โดยมันมีรูปแบบในการกำหนดดังนี้

public returnType PropertyName
{
get
{
return // data to return;
}
set {
privateField = value;
}
}

จากรูปแบบของการประกาศ properties นั้นจะเห็นว่ามันคล้ายกับฟังก์ชัน แต่เพียงจะมีเมธอดย่อยแยกลงไปอีกคือ get และ set โดยในการส่งค่ากลับหรือกำหนดค่านั้น สามารถทในรูปแบบ expressions ได้ สำหรับตัวแปร value นั้นจะเป็นค่าคงที่ของค่าที่ส่งเข้ามา

สร้างและใช้งาน Properties ในภาษา C#

มาดูตัวอย่างการใช้งานของ property ที่เกี่ยวกับอุณหภูมิ เพื่อให้คุณได้เข้าใจเกี่ยวกับการใช้งานของ Property ได้มากขึ้น

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Properties
{
class Location {

public string name;
private double celsius = 0;

public double Celsius
{
get { return celsius; }
set { celsius = value; }
}

public double Fahrenheit
{
get { return (celsius * 1.8) + 32; }
set { celsius = (value - 32) * 5.0 / 9.0;}
}

}
class Program
{
static void Main(string[] args)
{
Location a = new Location();
Location b = new Location();
Location c = new Location();

a.name = "New York";
a.Fahrenheit = 56;

b.name = "Bangkok";
b.Celsius = 32;

c.name = "Kiev";
c.Fahrenheit = 32;

Console.WriteLine("Temperature in " + a.name + " is " + (int)a.Celsius + " C");
Console.WriteLine("Temperature in " + b.name + " is " + b.Fahrenheit + " F");
Console.WriteLine("Temperature in " + c.name + " is " + c.Fahrenheit + " F");
}
}
}

จากตัวอย่างด้านบนเป็นการใช้ properties ในภาษา C# เราได้สร้างคลาส Location ขึ้นมาและมีตัวแปร celsius ซึ่งเป็นตัวแปรแบบ private โดยเราจะใช้ property ในการอ่านและเขียนข้อมูลสำหรับมัน เรามีสอง properties คือ Celsiusและ Fahrenheit โดยทั้งสองนี้จะมีฟัวก์ชันสำหรับการ set และ get แยกกัน นั่นหมายความว่า คุณสามารถแก้ไขหรือปรับปรุงค่าก่อนที่จะเก็บได้

เราได้สร้าง property เหล่านี้ขึ้นมาสำหรับอ่านและเขียนอุณหภูมิ โดยคุณสามารถกำหนดค่าอุณหภูมิในรูปแบบองศา Celsius แล้วดูเป็นแบบองศา Fahrenheit ได้ หรือในทางกลับกัน หรือจะใช้องศาเดียวกันทั้งสองก็ได้ ในการอ่านหรือเขียนค่าก็เข้าผ่าน property เหมือนกับตัวแปรได้เลย เช่นในคำสั่ง a.Fahrenheit

Temperature in New York is 13 C
Temperature in Bangkok is 89.6 F
Temperature in Kiev is 32 F

และนี่เป็นผลลัพธ์ของโปรแกรมดังกล่าว และในบทนี้คุณได้เรียนรู้และรู้จักวิธีการนำ property ไปประยุกต์ใช้ ซึ่งอำนวยความสะดวกได้มาก


บทความเกี่ยวกับ Properties

Properties ในภาษา Visual Basic

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับการใช้งาน property ในภาษา Visual Basic เพื่ออ่านและเขียนข้อมูลจากสมาชิกภายในคลาสProperty เป็นตัวแปรประเภทหนึ่งของคลาสที่ให้โปรแ...