Properties তৈরি এবং ব্যবহার করা
Properties হল ক্লাসের বিশেষ ধরনের সদস্য যা সাধারণত ডেটার অ্যাক্সেস এবং নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। Properties ক্লাসের ডেটা বা প্রপার্টি (যেমন, বয়স, নাম, মুল্য ইত্যাদি) অ্যাক্সেস করার জন্য ব্যবহৃত হয়, এবং এটি get এবং set অ্যাক্সেসর দ্বারা ডেটা গ্রহণ এবং সেট করা হয়। VB.Net-এ প্রপার্টি তৈরি করার মাধ্যমে আপনি ডেটার উপর আরও নিয়ন্ত্রণ রাখতে পারেন।
১. Property এর ধারণা
একটি Property একটি বিশেষ ধরনের মেথড যা ডেটার অ্যাক্সেস এবং সেটিংয়ের কাজ করে, তবে এটি মেথডের মতো এক্সিকিউট করা হয় না। সাধারণত, যখন আপনি প্রপার্টি ব্যবহার করেন, তখন সেটি একটি পদ্ধতির মতো কাজ করে, কিন্তু এর অভ্যন্তরীণ কাজ মেথডের থেকে আলাদা থাকে।
Property এর সিনট্যাক্স:
Property PropertyName() As DataType
Get
' কোড যা প্রপার্টির মান ফেরত দেয়
End Get
Set(value As DataType)
' কোড যা প্রপার্টির মান সেট করে
End Set
End Property- Get: এটি প্রপার্টির মান ফেরত দেয়।
- Set: এটি প্রপার্টিতে নতুন মান সেট করে।
২. Property তৈরি এবং ব্যবহার করা
২.১. প্রপার্টি তৈরি করার উদাহরণ
এখানে একটি Person ক্লাস তৈরি করা হয়েছে যেখানে একটি প্রপার্টি Name রয়েছে।
Class Person
' Private field
Private name As String
' Property to access and set name
Public Property Name() As String
Get
Return name
End Get
Set(value As String)
name = value
End Set
End Property
End Classব্যাখ্যা:
- এখানে
nameএকটি প্রাইভেট ফিল্ড হিসাবে ডিক্লেয়ার করা হয়েছে, যা সরাসরি অ্যাক্সেস করা যায় না। Nameপ্রপার্টিGetএবংSetঅ্যাক্সেসর ব্যবহার করে ফিল্ডের মানকে অ্যাক্সেস এবং সেট করতে সহায়তা করে।
২.২. প্রপার্টি ব্যবহার করার উদাহরণ
Sub Main()
' Person ক্লাসের একটি অবজেক্ট তৈরি করা
Dim person1 As New Person()
' প্রপার্টি ব্যবহার করে নাম সেট করা
person1.Name = "John Doe" ' Using the Set accessor
' প্রপার্টি ব্যবহার করে নাম পাওয়া
Console.WriteLine(person1.Name) ' Using the Get accessor
End Subব্যাখ্যা:
- এখানে
person1.Name = "John Doe"এভাবে প্রপার্টিরSetঅ্যাক্সেসর ব্যবহার করে নাম সেট করা হচ্ছে। - পরে
Console.WriteLine(person1.Name)দিয়ে প্রপার্টিরGetঅ্যাক্সেসর ব্যবহার করে নাম প্রিন্ট করা হচ্ছে।
৩. Automatic Properties (স্বয়ংক্রিয় প্রপার্টি)
VB.Net-এ Automatic Properties ব্যবহার করা হয় যখন আপনি একটি প্রপার্টি তৈরি করতে চান কিন্তু সেই প্রপার্টির জন্য আলাদা ফিল্ডের প্রয়োজন নেই। এটি VB.Net-এ কোডের পরিস্কারতা বজায় রাখে।
স্বয়ংক্রিয় প্রপার্টি উদাহরণ:
Class Person
' Automatic Property
Public Property Name As String
End Classএখানে Name প্রপার্টি স্বয়ংক্রিয়ভাবে একটি প্রাইভেট ফিল্ড তৈরি করে এবং সেটি অ্যাক্সেস এবং সেট করার জন্য প্রয়োজনীয় কোড জেনারেট করা হয়।
ব্যবহার উদাহরণ:
Sub Main()
' Person ক্লাসের একটি অবজেক্ট তৈরি করা
Dim person1 As New Person()
' স্বয়ংক্রিয় প্রপার্টি ব্যবহার করে নাম সেট করা
person1.Name = "Alice"
' স্বয়ংক্রিয় প্রপার্টি ব্যবহার করে নাম পাওয়া
Console.WriteLine(person1.Name)
End Sub৪. Read-Only এবং Write-Only Properties
Read-Only Property এবং Write-Only Property সেই প্রপার্টি যেখানে আপনি শুধুমাত্র একটি নির্দিষ্ট অ্যাক্সেসর ব্যবহার করতে পারবেন।
৪.১. Read-Only Property:
যেখানে আপনি শুধুমাত্র Get অ্যাক্সেসর ব্যবহার করতে পারবেন এবং Set অ্যাক্সেসর ব্যবহার করা যাবে না।
Class Person
Private name As String
' Read-Only Property
Public ReadOnly Property Name() As String
Get
Return name
End Get
End Property
End Classব্যাখ্যা:
- এখানে
Nameপ্রপার্টি শুধুমাত্রGetঅ্যাক্সেসরের মাধ্যমে অ্যাক্সেস করা যাবে, কিন্তু আপনি সেট করতে পারবেন না।
৪.২. Write-Only Property:
যেখানে আপনি শুধুমাত্র Set অ্যাক্সেসর ব্যবহার করতে পারবেন এবং Get অ্যাক্সেসর ব্যবহার করা যাবে না।
Class Person
Private name As String
' Write-Only Property
Public WriteOnly Property Name() As String
Set(value As String)
name = value
End Set
End Property
End Classব্যাখ্যা:
- এখানে
Nameপ্রপার্টি শুধুমাত্রSetঅ্যাক্সেসরের মাধ্যমে মান সেট করা যাবে, কিন্তুGetব্যবহার করে মান নেওয়া সম্ভব হবে না।
৫. Property Validation (প্রপার্টির মান যাচাই)
আপনি প্রপার্টির Set অ্যাক্সেসরের মধ্যে মান যাচাই করার কোড যুক্ত করতে পারেন। এটি ভুল ইনপুট ডেটা এড়াতে সাহায্য করে।
উদাহরণ:
Class Person
Private _age As Integer
' Age Property with validation
Public Property Age() As Integer
Get
Return _age
End Get
Set(value As Integer)
If value >= 0 Then
_age = value
Else
Console.WriteLine("Age cannot be negative!")
End If
End Set
End Property
End Classব্যাখ্যা:
- এখানে
Ageপ্রপার্টিরSetঅ্যাক্সেসরে একটি শর্ত দেওয়া হয়েছে যাতে negative value ইনপুট দেওয়া না যায়।
সারাংশ
- Property ক্লাসের প্রপার্টি অ্যাক্সেস করতে ব্যবহৃত হয় এবং এটি get এবং set অ্যাক্সেসর দ্বারা নিয়ন্ত্রিত হয়।
- Automatic Property তৈরি করা যায় যেখানে আপনি আলাদা ফিল্ড ডিক্লেয়ার না করেই প্রপার্টি ব্যবহার করতে পারেন।
- Read-Only এবং Write-Only প্রপার্টি তৈরি করা যায় যা শুধুমাত্র একটি অ্যাক্সেসর ব্যবহার করার সুযোগ দেয়।
- Property validation ব্যবহার করে আপনি প্রপার্টির মান যাচাই করে অগ্রহণযোগ্য ইনপুট আটকাতে পারেন।
এভাবে, প্রপার্টি ব্যবহার করে আপনি ক্লাসের ডেটার অ্যাক্সেস এবং নিয়ন্ত্রণ করতে পারেন।
Read more