কম্পিউটার টিউটোরিয়াল

C#-তে নির্দিষ্ট অবজেক্টের টাইপের জন্য রানটাইম টাইপ হ্যান্ডেল পাওয়ার পদ্ধতি

Type.GetTypeHandle(Type type) স্ট্যাটিক মেথড ব্যবহার করে একটি টাইপের জন্য RuntimeTypeHandle পাওয়ার সুযোগ থাকে। এটি টাইপের মেটাডেটার तरफ একটি লাইটওয়েট রেফারেন্স। এরপর Type.GetTypeFromHandle(RuntimeTypeHandle) দিয়ে টাইপ অবজেক্ট ফিরে পাওয়ার সুযোগ থাকে। এটি রিফ্লেকশন এবং ইন্টারঅপ পরিস্থিতিতে দরকার হয়।

উদাহরণ ১: System.Type-এর টাইপ হ্যান্ডেল

using System;

public class Demo {
    public static void Main() {
        Type type1 = typeof(System.Type);
        RuntimeTypeHandle typeHandle = Type.GetTypeHandle(type1);
        Type type = Type.GetTypeFromHandle(typeHandle);
        
        Console.WriteLine("অ্যাট্রিবিউট = " + type.Attributes);
        Console.WriteLine("রেফারেন্সড টাইপ = " + type);
    }
}

আউটপুট

অ্যাট্রিবিউট = AutoLayout, AnsiClass, Class, Serializable, BeforeFieldInit
রেফারেন্সড টাইপ = System.RuntimeType

উদাহরণ ২: double টাইপের টাইপ হ্যান্ডেল

using System;

public class Demo {
    public static void Main() {
        Type type1 = typeof(double);
        RuntimeTypeHandle typeHandle = Type.GetTypeHandle(type1);
        Type type = Type.GetTypeFromHandle(typeHandle);
        
        Console.WriteLine("অ্যাট্রিবিউট = " + type.Attributes);
        Console.WriteLine("রেফারেন্সড টাইপ = " + type);
    }
}

আউটপুট

অ্যাট্রিবিউট = AutoLayout, AnsiClass, Class, Serializable, BeforeFieldInit
রেফারেন্সড টাইপ = System.RuntimeType

দ্রষ্টব্য: RuntimeTypeHandle একটি ভ্যালু টাইপ (struct) যা GC-র দবাব কমায়। এটি ジェネরিক টাইপ হ্যান্ডলিং, P/Invoke, এবং সিরিয়ালাইজেশনের সময় কাজে আসে। typeof() অপারেটর কম্পাইল-টাইমে টাইপ অবজেক্ট দেয়, যা রানটাইমে GetTypeHandle-এ কনভার্ট করা যায়।

  1. C#-এ Char টাইপের TypeCode পাওয়া

  2. C#-এ Enum.GetType() মেথড: এনামের টাইপ পাওয়া

  3. C#.NET-এ সব ডেটা টাইপের বেস ক্লাস (Base Class for All Data Types) কী

  4. পাইথন প্যান্ডাস - Period অবজেক্টের জন্য ফ্রিকোয়েন্সি (frequency) পান