Sunday, October 15, 2017

C# For Beginners , Part -27 ( Structs In C# )

স্ট্রাকচার অনেকটাই ক্লাসের মতোই , আমরা এখন শুধু সাদৃশ্য নিয়েই কথা বলবো , চলো কোড দেখে আসি ------------------------------

using System;

public class student

{
   public string name;
   public int id;
   public student(string NAME,int ID)
    {
        this.id = ID;
        this.name = NAME;
    }
    public void printDetails()
   {

       Console.WriteLine("Student name = {0} , ID Number = {1} ",this.name,this.id);
   }

}

public class Program
{
    public static void Main()
    {
        student c = new student("Joy", 101);
        c.printDetails();
        Console.ReadKey();
    }
}

এটা নরমাল একটা ক্লাসের উদাহরণ , এবার চলো দেখি - উপরের কোডে শুধু  class কিওয়ারড এর জায়গায় , struct কিওয়ারড ইউজ করলেই আমাদের স্ট্রাকচার এর কাজ ইমপ্লিমেন্টন হয়ে যাবে ।।
চলো ,নীচে দেখে আসি -------------

using System;

public struct student

{
   public string name;
   public int id;
   public student(string NAME,int ID)
    {
        this.id = ID;
        this.name = NAME;
    }
    public void printDetails()
   {

       Console.WriteLine("Student name = {0} , ID Number = {1} ",this.name,this.id);
   }

}

public class Program
{
    public static void Main()
    {
        student c = new student("Joy", 101);
        c.printDetails();
        Console.ReadKey();
    }
}

তাহলে , আমরা বুঝতেই পারছি ক্লাস এর কাজগুলো ঠিকঠাকভাবেই স্ট্রাক্টচার দিয়েও করতে পারছি ।। এমনকি , সিনট্যাক্স'গুলোও একই , এমনকি ক্লাসের মতো প্রোপার্টি ও ইউজ করতে পারবো এই স্ট্রাকচার ইউজ করে ।। মেথোড , কন্সট্রাক্টর , প্রোপার্টি এই সব ক্লাসের বিহেভিয়ার'গুলো হুবহু ইউজ করতে পারছি , স্ট্রাকচারে ।।

আচ্ছা , এখন আসি আরেকটি কথা, - student c = new student("Joy", 101); আমরা যেমন , student অব্জেক্ট ক্রিয়েট করে এর মাধ্যমে প্যারামিটার হিসেবে - NAME & ID পাঠিয়েছি , আমাদের কিন্তু আরেকটু সহজভাবে এই কাজটা করতে পারি ।। চলো দেখে আসি ,

using System;

public struct student

{
   public string name;
   public  int id;
   public student(string NAME,int ID)
    {
        this.id = ID;
        this.name = NAME;
    }
    public void printDetails()
   {

       Console.WriteLine("Student name = {0} , ID Number = {1} ",this.name,this.id);
   }

}

public class Program
{
    public static void Main()
    {
        student c = new student()
        {
            name="JOY",
            id=101
        };
        c.printDetails();
        Console.ReadKey();
    }
}

প্রোগ্রামের ভাষায় আমরা ,    student c = new student()
                                                 {
                                                  name="JOY",
                                                    id=101
                                                 };

ইউজ করলাম , এটাকে অবজেক্ট ইনিশিয়ালাইজেশন বলা হয় ।। আর , এই সিনট্যাক্স কে অবজেক্ট ইনিশিয়ালাইজার সিন্ট্যাক্স বলা হয় ।।

তাহলে আমরা , ক্লাসের মতোই স্ট্রাকটচারে -   ক্লাস ফিল্ড , প্রোপারটিস , মেথোড  ইত্যাদি ইউজ করতে পাচ্ছি , একই সিনট্যাক্স-এ ।। এতক্ষণ এর আলোচোনা , শুনে - অনেকেই ভাববে তাহলে স্ট্রাকট আর ক্লাসের মধ্যে তফাত কি ??? কিন্তু এদের মধ্যেও অনেক তফাত আছে , সেটা পরে আলোচনা করছি --------------------------------------------------------- আজকে এইটুকুই









No comments:

Post a Comment