Generics এবং Collection Classes

VB.Net এর উন্নত বিষয়বস্তু (Advanced Topics in VB.Net) - ভিজুয়াল বেসিক ডট নেট (VB.Net) - Computer Programming

265

Generics এবং Collection Classes in VB.Net

Generics এবং Collection Classes VB.Net-এ ডেটা ম্যানিপুলেশন এবং ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট। Generics এবং Collections আপনাকে টেমপ্লেট ভিত্তিক ক্লাস এবং ডেটা স্ট্রাকচার ব্যবহার করার সুবিধা দেয়, যা কোডকে আরও পুনঃব্যবহারযোগ্য, কার্যকরী এবং টাইপ সেফ (type-safe) করে তোলে।

1. Generics এর ধারণা

Generics হল এমন একটি কনসেপ্ট যা আপনাকে একটি ক্লাস বা মেথড তৈরি করার সময় ডেটা টাইপ সুনির্দিষ্ট করতে দেয় না। এর মাধ্যমে আপনি একাধিক ডেটা টাইপে কাজ করতে পারেন একে অপরকে পুনঃব্যবহারযোগ্য কোড তৈরি করার জন্য। এটি type safety প্রদান করে এবং কোড লেখার সময় টাইপ সম্পর্কিত ত্রুটিগুলি কমায়।

Generics এর সুবিধা:
  1. Type Safety: টাইপ সেফটি নিশ্চিত করে, যাতে কম্পাইলার টাইপের ত্রুটি ধরতে পারে।
  2. Code Reusability: একই কোড একাধিক ডেটা টাইপের জন্য ব্যবহার করা যায়।
  3. Performance: Generics রানটাইম টাইপ কাস্টিং এড়ায়, যার ফলে পারফরম্যান্সে উন্নতি হয়।

Generics উদাহরণ:

' Generic Class Example
Public Class Box(Of T)
    Private value As T

    ' Property to get/set the value
    Public Property Item() As T
        Get
            Return value
        End Get
        Set(value As T)
            Me.value = value
        End Set
    End Property
End Class

' Main method to use Generic Class
Sub Main()
    Dim intBox As New Box(Of Integer)()
    intBox.Item = 100 ' Storing an Integer
    Console.WriteLine("Integer value: " & intBox.Item)

    Dim strBox As New Box(Of String)()
    strBox.Item = "Hello Generics!" ' Storing a String
    Console.WriteLine("String value: " & strBox.Item)
End Sub

ব্যাখ্যা:

  • এখানে Box একটি জেনেরিক ক্লাস, যেখানে T একটি প্লেসহোল্ডার টাইপ হিসেবে কাজ করছে।
  • Box(Of T) ব্যবহার করে আপনি একাধিক টাইপের ইনস্ট্যান্স তৈরি করতে পারেন, যেমন Integer বা String।

2. Collection Classes in VB.Net

Collection Classes হল এক ধরনের ডেটা স্ট্রাকচার যা ডেটা সংরক্ষণ এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। VB.Net-এর System.Collections এবং System.Collections.Generic নেমস্পেসে অনেক ধরনের কোলেকশন ক্লাস উপলব্ধ রয়েছে।

Collection Classes এর কিছু জনপ্রিয় ধরনের উদাহরণ:
  1. ArrayList (Non-generic)
  2. List(Of T) (Generic)
  3. Dictionary(Of TKey, TValue) (Generic)
  4. Queue(Of T) (Generic)
  5. Stack(Of T) (Generic)
  6. Hashtable (Non-generic)
১. ArrayList (Non-Generic Collection)

ArrayList হল একটি ডাইনামিক অ্যারে যা বিভিন্ন টাইপের ডেটা ধারণ করতে সক্ষম। এটি non-generic হওয়ায় টাইপ সেফটি প্রদান করে না, তাই সাধারণত List(Of T) ব্যবহার করা হয়।

Sub ExampleArrayList()
    ' ArrayList তৈরি
    Dim list As New ArrayList()
    
    ' বিভিন্ন ধরনের ডেটা সংরক্ষণ করা
    list.Add(1)
    list.Add("Hello")
    list.Add(3.14)

    ' ডেটা প্রিন্ট করা
    For Each item In list
        Console.WriteLine(item)
    Next
End Sub

ব্যাখ্যা:

  • ArrayList এ বিভিন্ন ধরনের ডেটা রাখা যেতে পারে, তবে এতে টাইপ সেফটি নেই, তাই সাধারণত জেনেরিক কোলেকশনগুলি ব্যবহৃত হয়।
২. List(Of T) (Generic Collection)

List(Of T) হল একটি জেনেরিক কোলেকশন ক্লাস যা একই টাইপের ডেটা সংরক্ষণ করে। এটি টাইপ সেফ এবং ডাইনামিক সাইজে কাজ করে।

Sub ExampleList()
    ' List তৈরি
    Dim numbers As New List(Of Integer)()

    ' ডেটা অ্যাড করা
    numbers.Add(10)
    numbers.Add(20)
    numbers.Add(30)

    ' ডেটা প্রিন্ট করা
    For Each num In numbers
        Console.WriteLine(num)
    Next
End Sub

ব্যাখ্যা:

  • List(Of T) কেবল একটি নির্দিষ্ট টাইপের ডেটা ধারণ করে, যেমন এখানে শুধুমাত্র Integer টাইপ।
৩. Dictionary(Of TKey, TValue) (Generic Collection)

Dictionary(Of TKey, TValue) একটি কোলেকশন ক্লাস যা কী-ভ্যালু পেয়ার হিসেবে ডেটা সংরক্ষণ করে। এটি ডেটার দ্রুত অ্যাক্সেস নিশ্চিত করতে ব্যবহৃত হয়।

Sub ExampleDictionary()
    ' Dictionary তৈরি
    Dim dict As New Dictionary(Of String, Integer)()

    ' কী-ভ্যালু পেয়ার যোগ করা
    dict.Add("One", 1)
    dict.Add("Two", 2)
    dict.Add("Three", 3)

    ' ডেটা প্রিন্ট করা
    For Each kvp In dict
        Console.WriteLine(kvp.Key & ": " & kvp.Value)
    Next
End Sub

ব্যাখ্যা:

  • Dictionary(Of TKey, TValue) ব্যবহার করে আপনি কী (key) এবং ভ্যালু (value) পেয়ার হিসেবে ডেটা সংরক্ষণ করতে পারেন।
৪. Queue(Of T) এবং Stack(Of T) (Generic Collections)

Queue(Of T) এবং Stack(Of T) কোলেকশনগুলো বিভিন্ন ধরনের ডেটা স্ট্রাকচার হিসেবে কাজ করে:

  • Queue FIFO (First In, First Out) প্রক্রিয়ায় কাজ করে।
  • Stack LIFO (Last In, First Out) প্রক্রিয়ায় কাজ করে।
Sub ExampleQueueAndStack()
    ' Queue তৈরি
    Dim queue As New Queue(Of String)()
    queue.Enqueue("First")
    queue.Enqueue("Second")
    queue.Enqueue("Third")

    ' Queue থেকে ডেটা ডিল করা
    Console.WriteLine("Queue (FIFO):")
    While queue.Count > 0
        Console.WriteLine(queue.Dequeue())
    End While

    ' Stack তৈরি
    Dim stack As New Stack(Of String)()
    stack.Push("First")
    stack.Push("Second")
    stack.Push("Third")

    ' Stack থেকে ডেটা পপ করা
    Console.WriteLine("Stack (LIFO):")
    While stack.Count > 0
        Console.WriteLine(stack.Pop())
    End While
End Sub

ব্যাখ্যা:

  • Queue FIFO পদ্ধতিতে প্রথমে যোগ করা আইটেম প্রথমে বের হয়।
  • Stack LIFO পদ্ধতিতে শেষের দিকে যোগ করা আইটেম প্রথমে বের হয়।

সারাংশ

  1. Generics:
    • টাইপ সেফটি এবং কোড পুনঃব্যবহারযোগ্যতার জন্য ব্যবহৃত হয়।
    • List(Of T), Dictionary(Of TKey, TValue) ইত্যাদি জেনেরিক ক্লাসগুলো আপনাকে একটি নির্দিষ্ট টাইপের ডেটা সংরক্ষণ করতে দেয়।
  2. Collection Classes:
    • ArrayList (Non-generic) এবং List(Of T) (Generic) হল দুটি প্রধান কোলেকশন ক্লাস।
    • Queue(Of T) এবং Stack(Of T) ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়।
    • Dictionary(Of TKey, TValue) কী-ভ্যালু পেয়ার সংরক্ষণ করে দ্রুত অ্যাক্সেস নিশ্চিত করে।

Generics এবং Collections ব্যবহারের মাধ্যমে আপনি শক্তিশালী, সুরক্ষিত এবং কার্যকরী কোড লিখতে পারবেন, যা সহজেই ডেটা সংরক্ষণ, পুনঃব্যবহার এবং পরিচালনা করতে সহায়ক হয়।

Content added By
Promotion

Are you sure to start over?

Loading...