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

C#-তে is কীওয়ার্ডের ব্যবহার

is কীওয়ার্ড

is কীওয়ার্ড ব্যবহার করে যাচাই করা যায় কোনো অবজেক্ট নির্দিষ্ট টাইপে কাস্ট করা যাবে কিনা। রিটার্ন টাইপ bool।

বেসিক সিনট্যাক্স


if (obj is TargetType) { ... }

উদাহরণ: ইনহেরিট্যান্স হায়ারার্কি


using System;

namespace DemoApplication {
    class Program {
        static void Main() {
            Employee emp = new PermanentEmployee {
                ID = 1,
                Name = "Martin"
            };
            
            // বেস টাইপ চেক — true (ডেরাইভড → বেস)
            if (emp is Employee) {
                Console.WriteLine($"{emp.Name} is Employee");
            }
            
            // একচেটিয়া টাইপ চেক — true
            if (emp is PermanentEmployee) {
                Console.WriteLine($"{emp.Name} is PermanentEmployee");
            }
            
            // ভিন্ন ব্রাঞ্চ — false
            if (emp is ContractEmployee) {
                Console.WriteLine($"{emp.Name} is ContractEmployee");
            } else {
                Console.WriteLine($"{emp.Name} is NOT ContractEmployee");
            }
            
            Console.ReadKey();
        }
    }
    
    class Employee {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    
    class PermanentEmployee : Employee {
        public int AnnualSalary { get; set; }
    }
    
    class ContractEmployee : Employee {
        public int HourlySalary { get; set; }
    }
}

আউটপুট:

Martin is Employee
Martin is PermanentEmployee
Martin is NOT ContractEmployee

Pattern Matching (C# 7.0+) — is সহ ভেরিয়েবল ডিক্লেয়ারেশন


// পুরানো স্টাইল
if (obj is Employee) {
    var emp = (Employee)obj;
    Console.WriteLine(emp.Name);
}

// নতুন স্টাইল — টাইপ প্যাটার্ন
if (obj is Employee emp) {
    Console.WriteLine(emp.Name); // emp সরাসরি ব্যবহারযোগ্য
}

// প্রপার্টি প্যাটার্ন (C# 8.0+)
if (emp is PermanentEmployee { AnnualSalary: > 50000 }) {
    Console.WriteLine("High earner");
}

// সوییচ এক্সপ্রেশন (C# 8.0+)
string GetRole(Employee e) => e switch {
    PermanentEmployee p when p.AnnualSalary > 100000 => "Senior",
    PermanentEmployee p => "Permanent",
    ContractEmployee c => "Contractor",
    _ => "Unknown"
};

is vs as vs cast

উদাহরণ: as vs is


object obj = "Hello";

// as + null চেক
string s1 = obj as string;
if (s1 != null) Console.WriteLine(s1.Length);

// is + pattern (C# 7+)
if (obj is string s2) {
    Console.WriteLine(s2.Length);
}

// কনস্ট্যান্ট প্যাটার্ন (C# 7+)
if (obj is "Hello") {
    Console.WriteLine("It's Hello!");
}

সতর্কতা

  • is বক্সিং করে না (রেফারেন্স টাইপের জন্য)
  • ভ্যালু টাইপের জন্য is চেক করার সময় বক্সিং হয় না (জেনেরিকস ছাড়া)
  • ইন্টারফেস চেকেও কাজ করে: obj is IDisposable
  1. C#-এ var কিওয়ার্ড কী কাজ করে?

  2. C#-এ 'new' কীওয়ার্ডের ব্যবহার

  3. C#-এ sizeof অপারেটরের ব্যবহার

  4. জাভা ৯-এ আন্ডারস্কোর (_) কিওয়ার্ডের ব্যবহার

কপিরাইট © https://bd.wsxdn.com সমস্ত অধিকার সংরক্ষিত
অপারেটরব্যবহারNull হলেরিটার্ন
isটাইপ চেকfalsebool
asসেফ কাস্টnull ফেরত দেয়TargetType or null
(Type)objফোর্স কাস্টInvalidCastExceptionTargetType