Properties

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

Property เป็นตัวแปรประเภทหนึ่งของคลาสที่ให้โปรแกรมสามารถอ่านและเขียนค่าภายในคลาสได้อย่างยืดหยุ่น โดย Property นั้นสามารถทำงานได้เหมือนกับตัวแปรและเมธอดในเวลาเดียวกัน ในการใช้ Property นั้นมักจะใช้ร่วมกับการเข้าถึงสมาชิกที่เป็น Private ภายในคลาส

ในการเข้าถึงผ่าน Property นั้นจะเข้าถึงเมธอดพิเศษที่เรียกว่า accessors ซึ่งมีดังนี้

  • เมธอด Get สำหรับส่งค่ากลับจาก Property มันถูกเรียกใช้เมื่อเราอ่านค่า Property ใน expression ใดๆ
  • เมธอด Set สำหรับกำหนด Property ไปยังตัวแปรภายในคลาส หรือเราเรียกว่าการกำหนดค่าให้กับ Property

การใช้งาน Property

ต่อไปมาดูตัวอย่างการใช้งาน Property ในภาษา Visual Basic โดยเราจะใช้ Property สำหรับการกำหนดและเข้าถึงชื่อและนามสกุลให้กับตัวแปรภายในคลาส Person

Class Person

Dim fristName As String
Dim lastName As String

Property Name() As String
Get
Return fristName & " " & lastName
End Get

Set(ByVal Value As String)
Dim name() = Value.Split(" ")
fristName = name(0)
lastName = ""

If name.Count > 1 Then
lastName = name(1)
End If
End Set
End Property

End Class

Module PropertyExample

Sub Main()

Dim person = New Person()
person.Name = "Mateo Marcus"
Console.WriteLine(person.Name)

person.Name = "Danny"
Console.WriteLine(person.Name)

End Sub

End Module

ในตัวอย่างเรามีคลาส Person ซึ่งภายในมีตัวแปร fristName และ lastName โดยเราจะใช้ Property ในการอ่านและกำหนดค่าตัวแปรเหล่านี้แทนการเข้าถึงตัวแปรโดยตรงจากออบเจ็ค

Property Name() As String
Get
Return fristName & " " & lastName
End Get

Set(ByVal Value As String)
Dim name() = Value.Split(" ")
fristName = name(0)
lastName = ""

If name.Count > 1 Then
lastName = name(1)
End If
End Set
End Property

ภายในคลาส เราได้สร้าง Property Name โดย Property นี้มีคุณสมบัติในการเขียนข้อมูลซึ่งจะผ่านเมธอด Set และอ่านข้อมูลซึ่งจะผ่านเมธอด Set

ภายในเมธอด Set คุณจะเห็นว่าเราสามารถกำหนดชือให้กับตัวแปรผ่าน Property Name ได้ โดยสามารถที่จะใส่แค่ชื่อหรือพร้อมทั้งนามสกุล และในเมธอด Get เป็นการส่งค่าชื่อและนามสกุลกลับไปผ่านการเรียกใช้ Property

person.Name = "Mateo Marcus"
Console.WriteLine(person.Name)

คำสั่งต่อมาภายในโมดูล expression person.Name = "Mateo Marcus" เป็นการเรียกใช้เมธอด Set ของ Property Name และคำสั่ง person.Name เป็นการรับค่าจากเมธอด Get

Mateo Marcus
Danny

และนี่เป็นผลลัพธ์ของโปรแกรมในการใช้ Property ในภาษา Visual Basic

จากตัวอย่างการใช้งาน Property คุณจะเห็นว่ามันสามารถทำงานได้เหมือนกับเมธอด แต่การใช้งานของมันนั้นเหมือนกับตัวแปรซึ่งง่ายต่อการเข้าถึง

Read-only property

โดยทั่วไปแล้ว Property นั้นจะมีสองเมธอดคือ Get และ Set ซึ่งในบางครั้ง เราจำเป็นที่จะกำหนดให้มันสามารถอ่านได้เพียงอย่างเดียว ซึ่งสามารถทำได้ในภาษา Visual Basic

Class Temperature

Public fahrenheitce As Double

ReadOnly Property Celsius() As String
Get
Return Math.Round((fahrenheitce - 32) / 1.8, 2)
End Get
End Property

End Class

Module Module1

Sub Main()

Dim f = New Temperature()
f.fahrenheitce = 56
Console.WriteLine(f.fahrenheitce & " degree F is " &
f.Celsius & " in degree C")

f.fahrenheitce = 32
Console.WriteLine(f.fahrenheitce & " degree F is " &
f.Celsius & " in degree C")

End Sub

End Module

ในตัวอย่างเป็นการใช้ Property กับการกำหนดอุณหภูมิให้กับตัวแปรภายในคลาส Temperature โดยปกติอุณหภูมินั้นจะแสดงในรูปแบบขององศาฟาเรนไฮต์ เราใช้สร้าง Property Celsius ซึ่งมีคุณสมบัติอ่านได้อย่างเดียว โดยการใส่คำสั่ง ReadOnly ไว้หน้าการประกาศ Property

ถึงแม้คลาสของเราจะเป็นหน่วยองศาแบบองศาฟาเรนไฮต์ แต่เราสามารถอ่านค่าของเซลเซียสได้ผ่าน Property Celsius ที่เราได้กำหนดการทำงานไว้ในเมธอด Get ของมัน

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับ Property ในภาษา Visual Basic และเข้าใจในการใช้เมธอด Get และ Set ของ Property โดยการใช้งาน Property นั้นถูกนำไปใช้อย่างหลากหลายในการเขียนโปรแกรมภาษา Visual Basic โดยเฉพาะอย่างยิ่งในการเขียนโปรแกรมเชิงวัตถุ


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

Properties ในภาษา C#

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