সি # টিউটোরিয়াল: সি # টি মাস্টার করার জন্য আপনার প্রয়োজনীয় ফান্ডামেন্টালগুলি



সি # টিউটোরিয়াল-এর এই নিবন্ধটি আপনাকে আরও ভাল বোঝার জন্য রিয়েল-টাইম উদাহরণগুলির পাশাপাশি সি # তহবিলের উপর বিস্তারিত জ্ঞানের সাহায্য করবে।

সি # হ'ল সর্ব-উদ্দেশ্যমূলক এবং শক্তিশালী প্রোগ্রামিং ভাষা 2000 সালে জাভাটির একটি মারাত্মক প্রতিযোগী হিসাবে মাইক্রোসফ্ট কর্পোরেশন দ্বারা বিকাশ করেছে। এটি ওয়েব জনপ্রিয়তা এবং ডেস্কটপ অ্যাপ্লিকেশন বিকাশের উভয় ক্ষেত্রেই সর্বাধিক জনপ্রিয় এবং একটি প্রভাবশালী প্রোগ্রামিং ভাষা।

এই সি # টিউটোরিয়ালে, আমরা নিম্নলিখিত ধারণাগুলি শিখব।





সি # বেসিক

সি # প্রোগ্রামিং ভাষার পরিচিতি

90 এর দশকের গোড়ার দিকে, জাভা ওয়েব ডেভলপমেন্ট, ডেস্কটপ অ্যাপ্লিকেশন বিকাশ এবং অন্যান্য অনেক ক্ষেত্রে অগ্রণী প্রোগ্রামিং ভাষা ছিল। মাইক্রোসফ্ট অনেকগুলি উন্নত বৈশিষ্ট্যযুক্ত প্রতিযোগীর সাথে আসতে চেয়েছিল যা জাভাকে অনেক পিছনে ফেলে দিতে পারে।



C#-Tutorial-hejlsberg_bio

এটি ছিল 2000 সালে, অ্যান্ডারস হেজলসবার্গ এবং তার মাইক্রোসফ্ট টিম সি # এর ধারণাটি সামনে আসে যা সি-শার্প নামে জনপ্রিয় হিসাবে পরিচিত। এই উদ্যোগটি আন্তর্জাতিক স্ট্যান্ডার্ড সংস্থা কর্তৃক অনুমোদিত হয়েছিল (মেজর) এবং ইউরোপীয় কম্পিউটার উত্পাদনকারী সমিতি (ইসিএমএ) এবং পরিশেষে, সি # সফ্টওয়্যার বিকাশের বিশ্বে প্রবেশ করে।

সি # প্রোগ্রামিং ভাষার বৈশিষ্ট্য



  • অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং পদ্ধতির বিষয়টি সি সিটিকে সবচেয়ে প্রোগ্রামার বান্ধব এবং প্রোগ্রামিং ল্যাঙ্গুয়েজ বিকাশ ও বজায় রাখা সহজ করে তোলে।

  • প্রকার-নিরাপদ ভাষা

টাইপ-সেফটির অর্থ হ'ল সংকলকটি কেবল মেমরির স্থানে অ্যাক্সেস দেওয়া হবে যা চালানোর অনুমতি রয়েছে। এই বৈশিষ্ট্যটি কোড সুরক্ষাটিকে তাত্পর্যপূর্ণ পর্যায়ে উন্নত করে।

  • আন্তঃব্যবহার্যতা

ইন্টারঅ্যাপেরবেবিলিটির বৈশিষ্ট্যটি সি ++ এর নিজস্ব যা আরও কার্যকর দক্ষতার সাথে সি ++ ছাড়িয়ে যেতে পারে এমন সব কিছু করার জন্য সি # কে সক্ষম করে তোলে।

  • সমৃদ্ধ গ্রন্থাগার

সি # একাধিক সংখ্যক অন্তর্নির্মিত লাইব্রেরিগুলিতে অ্যাক্সেস সরবরাহ করে যা উন্নয়ন প্রক্রিয়াতে ব্যয় করা সময় হ্রাস করার জন্য প্রিপ্রোগ্র্যামড কার্যকারিতা সরবরাহ করে।

  • স্কেলেবল এবং আপডেটযোগ্য

সি # অন্যান্য প্রোগ্রামিং ভাষার মধ্যে শ্রেষ্ঠ হতে ডিজাইন করা হয়েছিল। অতএব, এটি সর্বদা আপডেটের জন্য উন্মুক্ত থাকে এবং এটি এর বৈশিষ্ট্যগুলির সাথে নিজেকে অত্যন্ত স্কেলযোগ্য রাখে।

  • কম্পোনেন্ট ওরিয়েন্টেড

মাইক্রোসফ্টের বিকাশকারীগণ সি # বিকাশ করার জন্য উপাদান-ভিত্তিক পদ্ধতির ব্যবহার করেছিলেন। এটি সি # উচ্চতর স্কেলযোগ্য এবং আপডেট রাখার জন্য সবচেয়ে উন্নত বিকাশ পদ্ধতি।

  • কাঠামোগত ভাষা

প্রক্রিয়া-ভিত্তিক প্রোগ্রামিং পদ্ধতির তুলনায় সফ্টওয়্যারটি সংকলন করা এবং মোতায়েন করা সহজ হয়ে ওঠে বলে সফ্টওয়্যার বিকাশ জীবন-চক্রের সময় স্ট্রাকচার্ড প্রোগ্রামিং পদ্ধতির পছন্দ বেশি।

  • দ্রুত

সি #+ এবং অন্যান্য প্রোগ্রামিং ভাষার তুলনায় সি # প্রোগ্রামিং সংকলন এবং প্রয়োগের ক্ষেত্রে দ্রুত হয়।

স্থাপন

এটা প্রমাণিত যে মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও সি # প্রোগ্রামিংয়ের জন্য শ্রেণি সম্পাদকের মধ্যে সেরা। আমরা নীচে উল্লিখিত পদক্ষেপগুলি অনুসরণ করে আমাদের সি # প্রোগ্রামগুলি সম্পাদন করার জন্য মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও স্থাপন এবং সেট আপ করব:

ধাপ 1 : মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও ডাউনলোড করুন

জন্য গুগল ভিজ্যুয়াল স্টুডিওর সর্বশেষ সংস্করণ এবং ডাউনলোড করুন ইনস্টল আপনার স্থানীয় সিস্টেমে ফাইল করুন এবং তারপরে চালান ইনস্টলার ফাইল হিসাবে একটি প্রশাসক

পদক্ষেপ 2:। নেট ডেস্কটপ বিকাশ প্যাকেজ নির্বাচন করুন

একবার আপনি ইনস্টলারটি চালনা করলে ভিজ্যুয়াল স্টুডিও সম্পাদক আপনার স্থানীয় সিস্টেমে সাফল্যের সাথে ডাউনলোড হয়ে যাবে, পরে আপনার ডেস্কটপ স্ক্রিনে একটি ডায়ালগ বক্স প্রদর্শিত হবে যাতে শত্রুরা জিজ্ঞাসা করবে নির্দিষ্ট প্যাকেজ আপনার সিস্টেমে আপনার দরকার এখানে, আপনি নির্বাচন করতে হবে .NET ডেস্কটপ বিকাশ প্যাকেজ

পদক্ষেপ 3: সি # পরিবেশ নির্ধারণ করুন

আপনার প্যাকেজ একবার .NET বিকাশ ডাউনলোড করা হয়, তারপরে আপনি যে বিকাশের পরিবেশটি খুঁজছেন তার জন্য জিজ্ঞাসা করে অন্য একটি ডায়ালগ বাক্স আপনার পর্দায় প্রদর্শিত হবে। এখানে, আপনার প্রয়োজন সি # এর জন্য পরিবেশ নির্বাচন করুন।

পদক্ষেপ 4: আপনার প্রথম প্রকল্পটি তৈরি করুন

পরিবেশটি সেট হয়ে গেলে আপনারা সবাই ভাল আছেন। আপনার ভিজ্যুয়াল স্টুডিও শুরু করুন এবং নির্বাচন করুন নতুন প্রকল্প তৈরি করুন প্রদর্শিত ডায়লগ বাক্সে বিকল্প।

আপনাকে পরবর্তী সংলাপ বাক্সে পুনঃনির্দেশিত করা হবে এবং সেখানে আপনাকে শ্রেণিকালীন পাঠাগারটি নির্বাচন করতে হবে .NET স্ট্যান্ডার্ড নিচে দেখানো হয়েছে.

পরবর্তী সংলাপ বাক্সে, আপনাকে জিজ্ঞাসা করা হবে আপনার প্রকল্পটি কনফিগার করুন । এটি কনফিগার করুন এবং আপনি এখন সম্পাদকে রয়েছেন। আপনার প্রথম প্রোগ্রাম লিখুন এবং চালান এটা। আউটপুট সফলভাবে প্রদর্শিত হবে কমান্ড প্রম্পট।

সিস্টেম ক্লাস এডুরেকা ব্যবহার করে {স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) so কনসোল.উরাইটলাইন ('এডুরেকায় আপনাকে স্বাগতম! শুভ শেখা ..!')}}

// আউটপুট:

আসুন আমাদের প্রথম সি # প্রোগ্রামটি কার্যকর করি।

সি # প্রোগ্রাম স্ট্রাকচার

এখন যেহেতু আমরা আমাদের প্রথম সি # প্রোগ্রামটি কার্যকর করেছি, আসুন আমরা এর কাঠামোটি বিশদভাবে বুঝতে পারি। একটি সাধারণ সি # প্রোগ্রামের নিম্নলিখিত অংশ রয়েছে।

সিস্টেম নেমস্পেস কনসোল অ্যাপ্লিকেশন 1 using সার্বজনীন শ্রেণীর এডুরেকা {পাবলিক স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরগস) ব্যবহার করে {কনসোল.উরাইটলাইন ('এডুরেকায় আপনাকে স্বাগতম !, শুভশিক্ষা ..!')}}}

// আউটপুট:

এডুরেকায় আপনাকে স্বাগতম !, শুভ শেখা ..!

  • শ্রেণি: বর্গ সাধারণত হিসাবে সংজ্ঞায়িত করা যেতে পারে কীওয়ার্ড যা সি # প্রোগ্রামে কোনও শ্রেণি সংজ্ঞায়িত করতে ব্যবহৃত হয়।
  • এডুরেকা: এটি নাম ক্লাস শ্রেণিকে প্রায়শই একটি নীলনকশা হিসাবে বিবেচনা করা হয় যা শ্রেণীর সাথে সম্পর্কিত সদস্য এবং পদ্ধতিগুলি সঞ্চয় করে।
  • প্রধান: মূলত হয় প্রাথমিক পদ্ধতি পুরো সি # প্রোগ্রামের, এটি প্রোগ্রামে প্রবেশের নিয়ন্ত্রণের প্রবেশদ্বার হিসাবে কাজ করে। প্রোগ্রামটির অন্য কোনও পদ্ধতি কার্যকর হওয়ার আগে এটি কার্যকর করা হয়।
  • অকার্যকর: কোডটির এই বিভাগটি এতে মনোনীত হয় রিটার্ন টাইপ পদ্ধতির। এটি শূন্য ব্যতীত অন্য কোনও ডেটাটাইপ হতে পারে। অকার্যকর অর্থ পদ্ধতিটি এর থেকে কোনও ডেটা ফেরত আসে না।
  • স্থির: এটা একটা কীওয়ার্ড যা বলে যে ঘোষিত ডেটা সদস্যরা স্থির এবং ঘোষিত সদস্যদের জন্য একটি ডেডিকেটেড মেমরি বরাদ্দ করা হয়েছে।
  • স্ট্রিং [] যুক্তি: এটি কমান্ড লাইন আর্গুমেন্টের সাথে সাদৃশ্যপূর্ণ যা আমরা আমাদের প্রোগ্রামে ব্যবহার করি। আমরা যখন আমাদের প্রোগ্রামটি কার্যকর করি, আমরা মূলত কিছুটা পাস করি যুক্তি, যা এই বক্তব্যটির কারণে প্রোগ্রামটি গ্রহণ করবে।
  • সিস্টেম.কনসোল.ব্রাইটলাইন ('এডুরেকায় আপনাকে স্বাগতম !, শুভ শেখা ..!') এখানে, পদ্ধতি হয় নেমস্পেস কনসোলবিষয়শ্রেণীতে এটি বর্ণিত হয়েছেসিস্টেম নেমস্পেসে। দ্য লেখার লাইন() যেস্থিরপ্রযুক্তিকনসোলেরবিষয়শ্রেণীতে লিখতে নিযুক্ত করা হয়কনসোলটিতে লেখা।

এখন, আসুন সি # তে থাকা ডেটাটাইপগুলি শিখি।

তথ্যের ধরণ

সি # তে ডেটাটাইপগুলি নীচে বর্ণিত হয়েছে তিনটি বিভাগে বিভক্ত।

মান ডেটাটাইপস

দ্য মান ডেটাটাইপস অবস্থিত সিস্টেম.ভ্যালু টাইপ লাইব্রেরি এবং সর্বদা সরাসরি অ্যাক্সেস করার জন্য প্রস্তুত এবং ভেরিয়েবলগুলি সরাসরি কোনও নির্দিষ্ট মান হিসাবে নির্ধারিত হতে পারে। মান ডেটাটাইপগুলি আরও নীচে দেখানো হিসাবে দুটি ধরণের শ্রেণিবদ্ধ করা হয়েছে:

  • পূর্বনির্ধারিত ডেটাটাইপস
  • ব্যবহারকারী-সংজ্ঞায়িত ডেটাটাইপস

পূর্বনির্ধারিত ডেটাটাইপস: এগুলি আমরা সাধারণত আমাদের প্রতিদিনের প্রোগ্রামিংয়ে ব্যবহার করি। এই ডেটাটাইপগুলি ভাষা বিকাশকারীদের দ্বারা পূর্বনির্ধারিত এবং প্রোগ্রামারদের জন্য ব্যবহারের জন্য প্রস্তুত রাখা হয়।

উদাহরণ:

ইন্ট, ফ্লোট, চর, শর্ট ডাবল ইত্যাদি

ব্যবহারকারী-সংজ্ঞায়িত ডেটাটাইপস: এমন পরিস্থিতি রয়েছে যেখানে আমাদের প্রয়োজন হতে পারে ডেটাটাইপগুলি থেকে একক ভেরিয়েবলে বিভিন্ন মান। এই ক্ষেত্রে, পূর্বনির্ধারিত ডেটাটাইপস যথেষ্ট নয় ব্যবহারকারী-সংজ্ঞায়িত ডেটাটাইপগুলি ব্যবহারকারীর জন্য কাস্টমাইজযোগ্য ডেটাটাইপগুলির মতো।

উদাহরণ: কাঠামো, এনাম

ডেটাটাইপ মেমরি বরাদ্দের ব্যাপ্তি মেমরি সাইজ
স্বাক্ষরিত চর -128 থেকে 127 1 বাইট
স্বাক্ষরবিহীন চর 0 থেকে 127 1 বাইট
চর -128 থেকে 127 1 বাইট
সংক্ষিপ্ত স্বাক্ষরিত -32,768 থেকে 32,767 এ 2 বাইট
স্বাক্ষরযুক্ত স্বল্প 0 থেকে 65,535 এ 2 বাইট
সংক্ষিপ্ত -32,768 থেকে 32,767 এ 2 বাইট
স্বাক্ষরিত -2,147,483,648 থেকে -2,147,483,647 4 বাইট
স্বাক্ষরবিহীন 0 থেকে 4,294,967,295 এ 4 বাইট
int -2,147,483,648 থেকে -2,147,483,647 4 বাইট
দীর্ঘ স্বাক্ষরিত -9,223,372,036,854,775,808 থেকে 9,223,372,036,854,775,807 8 বাইট
স্বাক্ষরবিহীন দীর্ঘ 0 থেকে 18,446,744,073,709,551,615 এ 8 বাইট
দীর্ঘ -9,223,372,036,854,775,808 থেকে 9,223,372,036,854,775,807 8 বাইট
ভাসা 1.5 * 10-45 - 3.4 * 1038, (7-অঙ্কের নির্ভুলতা) 4 বাইট
দ্বিগুণ 5.0 * 10-324 - 1.7 * 10308, (15-অঙ্কের নির্ভুলতা) 8 বাইট
দশমিক -7.9 * 10-28 - 7.9 * 1028, (28-সংক্ষিপ্ত নির্ভুলতা) 16 বাইট


পয়েন্টার ডেটাটাইপ

পয়েন্টার প্রকার একটি সাধারণ ডেটাটাইপ। এর কার্যকারিতা সি এর পয়েন্টারগুলির সাথে সম্পূর্ণরূপে অনুরূপ They তারা অন্য পয়েন্টারের ঠিকানা সঞ্চয় করার জন্য ডিজাইন করা হয়েছে।

ভাসা * পিটিআর

রেফারেন্স ডেটাটাইপস

নামটি স্ব-ব্যাখ্যামূলক। দ্য রেফারেন্স ডেটাটাইপস আসলে ভেরিয়েবলগুলি সংরক্ষণ করে না, পরিবর্তে, তারা সেই নির্দিষ্ট ভেরিয়েবলের রেফারেন্স মানটি সঞ্চয় করে। অন্য কথায়, তারা প্রকৃত ভেরিয়েবলের ঠিকানা সঞ্চয় করে।

রেফারেন্স ভেরিয়েবলগুলি নীচে উল্লিখিত হিসাবে তিনটি বিভিন্ন ধরণের শ্রেণিবদ্ধ করা হয়েছে:

  • অবজেক্টের ধরণ

অবজেক্ট ডেটাটাইপ পাওয়া যায় System.Object ক্লাসবস্তুপ্রকারহতে পারেনিযুক্তএর মানঅন্যান্য ধরণের,রেফারেন্সপ্রকার, পূর্বনির্ধারিত, ব্যবহারকারী সংজ্ঞায়িতপ্রকার। কিন্তু আগেঅ্যাসাইনমেন্টমান, এটি প্রয়োজন প্রকার পরিবর্তন.

অবজেক্ট abc abc = 50 // এটিকে বক্সিং বলা হয়
  • গতিশীল প্রকার

ডায়নামিক টাইপ ভেরিয়েবলগুলি প্রায় সব ধরণের মান সংরক্ষণ করার জন্য ডিজাইন করা হয়। এটিকে ডায়নামিক টাইপ বলা হয় কারণ মানগুলির টাইপ-চেকিং রান-টাইমে ঘটে

গতিশীল এক্স = 10
  • স্ট্রিং প্রকার

স্ট্রিং টাইপ পাওয়া যায় সিস্টেম। স্ট্রিং ক্লাস স্ট্রিং টাইপ স্ট্রিং ল্যাটারালগুলি সঞ্চয় করার জন্য ডিজাইন করা হয়েছে। স্ট্রিং লিটারালগুলি দুটি ফর্ম মধ্যে সংরক্ষণ করা হয়দুটি ফর্ম

    • উদ্ধৃত
    • @ উদ্ধৃত।
স্ট্রিং এস = 'এডুরেকা'
  • দ্য @ উদ্ধৃত স্ট্রিং আক্ষরিক মত দেখাচ্ছে
@ 'এডুরেকা'

আসুন এখন ভেরিয়েবলগুলি বুঝতে পারি।

পরিবর্তনশীল

ভেরিয়েবলগুলি মেমরি অবস্থানের জন্য বরাদ্দ করা নামগুলি যা ব্যবহারকারীর দেওয়া নির্দিষ্ট ডেটা সংরক্ষণ করে এবং ভেরিয়েবলের নামটি ব্যবহার করে সেই ডেটা সহজেই অ্যাক্সেসযোগ্য। সি # তে পাঁচ ধরণের ভেরিয়েবল উপলব্ধ

প্রকার উদাহরণ
শূন্য নাল তথ্য
বুলিয়ান সত্য এবং মিথ্যা
পূর্ণসংখ্যা আন্ত, চর, বাইট, সংক্ষিপ্ত, দীর্ঘ
ভাসা ভাসা এবং ডাবল
দশমিক দশমিক

উদাহরণ:

int a, b ডাবল এক্স ফ্লোট পি চর অ্যাবিসি

সি # তে ভেরিয়েবল ঘোষণার জন্য বিধি অনুসরণ করা হবে

  • একটি ভেরিয়েবলের বর্ণমালা, অঙ্ক এবং আন্ডারস্কোর অন্তর্ভুক্ত থাকতে পারে।
  • একটি চলক নাম কেবলমাত্র একটি বর্ণমালা বা কেবল একটি আন্ডারস্কোর দিয়ে শুরু করতে পারে।
  • চলকগুলি কোনও অঙ্ক বা বিশেষ অক্ষর দিয়ে শুরু করতে পারে না।
  • পরিবর্তনশীল নামের মধ্যে সাদা স্পেসের অনুমতি নেই।
  • সংরক্ষিত কীওয়ার্ডগুলি ভেরিয়েবলের নাম হিসাবে ব্যবহার থেকে বিরত রয়েছে।

অপারেটর

একটি অপারেটরকে একটি বিশেষ প্রতীক হিসাবে সংজ্ঞায়িত করা যায় যা কম্পিউটারকে একটি নির্দিষ্ট গাণিতিক সঞ্চালনের জন্য ব্যাখ্যা করে যে ভেরিয়েবলগুলির একটি সেট উপর একটি লজিকাল অপারেশন। সি # এর মধ্যে বিভিন্ন অপারেটর রয়েছে যা নীচে উল্লেখ করা হয়েছে mentioned

  • পাটিগণিত অপারেটর
  • রিলেশনাল অপারেটর
  • লজিক্যাল অপারেটর
  • বিটওয়াইস অপারেটর
  • অ্যাসাইনমেন্ট অপারেটর

পাটিগণিত অপারেটর

অপারেটর উদাহরণ বর্ণনা
+ এ + বি দুটি অপেরাড যুক্ত করে
- ক - খ দুটি অপারেন্ড সাবস্টেক্ট করে
* ক * খ দুটি অপারেন্ডকে গুণিত করে
/ এ / বি দুটি অপারেন্ড ভাগ করে
% এ% বি টু অপারেন্ডের বাকি
++ এ ++ বৃদ্ধি কার্যক্রম
- প্রতি- হ্রাস অপারেশন

রিলেশনাল অপারেটর

অপারেটর উদাহরণ বর্ণনা
== এ == খ সত্য, উভয় অপারেন্ড যদি সমান হয় তবে অন্য মিথ্যা
! = এ! = খ সত্য, যদি উভয় অপারেন্ড সমান না হয়, অন্যথায় মিথ্যা
> ক> খ সত্য, যদি এ গ্রেটার হয় তবে অন্য মিথ্যা
< প্রতি সত্য, বি যদি গ্রেটার হয় তবে অন্য মিথ্যা
> = এ> = খ সত্য, যদি এ গ্রেটার বা সমান হয় তবে অন্য মিথ্যা
<= প্রতি<= B সত্য, আইডি বি বৃহত্তর সমান, অন্যথায় মিথ্যা

লজিক্যাল অপারেটর

অপারেটর উদাহরণ বর্ণনা
&& এন্ড অ্যান্ড বি সত্য, যদি উভয় অপারেশন সত্য হয়, অন্যথায় মিথ্যা
|| এ || খ সত্য, অপারেন্ডগুলির মধ্যে একটি যদি সত্য হয়, অন্যথায় মিথ্যা
! আ! খ অপারেন্ডের যৌক্তিক অবস্থাকে বিপরীত করে

বিটওয়াইস অপারেটর

প্রতি এ এবং বি ক | খ এ ^ বি
এক এক এক এক 0
এক 0 0 এক এক
0 এক 0 এক এক
0 0 0 0 0
অপারেটর উদাহরণ বর্ণনা
~ (~ এ) বাইনারি ওয়ান এর কমপ্লিমেন্ট অপারেটর অবিচ্ছিন্ন এবং 'উল্টানো' বিটগুলির প্রভাব রয়েছে।
<< প্রতি<<2 বাইনারি বাম শিফট অপারেটর। বাম অপারেন্ডস মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা দ্বারা বাম সরানো হয়।
>> এ >> 2 বাইনারি রাইট শিফট অপারেটর। বাম অপারেন্ডস মানটি ডান অপারেন্ড দ্বারা নির্দিষ্ট করা বিটের সংখ্যা দ্বারা ডানদিকে সরানো হয়।

অ্যাসাইনমেন্ট অপারেটর

অপারেটর উদাহরণ বর্ণনা
= এ = বি + সি A = B + C, B + C এ এ নিয়োগ করা হয়েছে
+ = এ + = বি A = A + B, A + B কে A তে নির্ধারিত করা হয়
- = এ - = খ A = A-B, A-B কে A তে নির্ধারিত করা হয়
* = এ - = খ A = A * B, A * B কে A তে নির্ধারিত করা হয়
/ = এ / = বি এ = এ / বি, এ / বি কে এ নিয়োগ করা হয়েছে
% = এ% = বি A = A% B, A% B কে A তে নির্ধারিত করা হয়
<<= প্রতি<<= 2 বাম শিফট এবং অ্যাসাইনমেন্ট অপারেটর
>> = এ >> = 2 রাইট শিফট এবং অ্যাসাইনমেন্ট অপারেটর
& = এ & = 2 বিটওয়াইস এবং অ্যাসাইনমেন্ট অপারেটর
^ = এ ^ = 2 বিটওয়াইজ এক্সক্লুসিভ এবং এসাইনমেন্ট অপারেটর
| = এ! = 2 বিটওয়াইস ইনক্লুসিভ এবং এসাইনমেন্ট অপারেটর

লুপস

প্রতি লুপ নির্দিষ্ট শর্তটি সন্তুষ্ট না হওয়া পর্যন্ত বারবার স্টেটমেন্টের ব্লক সম্পাদন করতে ব্যবহৃত হয় used সি # ভাষাতে নিম্নলিখিত লুপের বিবৃতি রয়েছে।

  • লুপের জন্য
  • যখন লুপ
  • যখন লুপ করবেন

লুপের জন্য

দ্য লুপ জন্য প্রদত্ত শর্তটি সন্তুষ্ট না হওয়া পর্যন্ত একাধিকবার নির্দিষ্ট কোড বিভাগটি কার্যকর করতে ব্যবহৃত হয়।

বাক্য গঠন

(শুরুর শর্ত বৃদ্ধি / হ্রাস) এর জন্য code // কোড বিভাগ}

ফ্লোচার্ট:

উদাহরণ:

সিস্টেমের জন্য সর্বজনীন বর্গের জন্য উদাহরণ ব্যবহার করুন {সর্বজনীন স্ট্যাটিক শূন্যস্থানীয় মেইন (স্ট্রিং [] আরগস) {এর জন্য (আইটি আই = 1 আই)<= 5 i++) { Console.WriteLine(i) } } } 

// আউটপুট:

এক



যখন লুপ

দ্য লুপ করার সময় একটি নির্দিষ্ট শর্তটি সন্তুষ্ট না হওয়া পর্যন্ত একাধিক সংখ্যার জন্য একটি কোড বিভাগ কার্যকর করতে ব্যবহৃত হয়।

বাক্য গঠন

(শর্ত) {// কোড কার্যকর করা হবে while

ফ্লোচার্ট:

উদাহরণ:

সিস্টেমের নেমস্পেস লুপগুলি {শ্রেণি প্রোগ্রাম {স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরগস) {ইন্ট x = 5 ব্যবহার করার সময় (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

// আউটপুট:

একটি: 5 এর মান
একটি: 6 এর মান
একটি: 7 এর মান
একটি: 8 এর মান
একটি: 9 এর মান
একটি: 10 এর মান

যখন লুপ করবেন

লুপটি যখন লুপের সাথে সম্পূর্ণরূপে সমান হয় তবে কেবল তফাতটি হ'ল শর্তটি লুপের শেষে রাখা হয়। সুতরাং, লুপটি অন্তত একবারের জন্য কার্যকর করা হয়।

বাক্য গঠন

কার্যকর করতে হবে {// কোড করুন} যখন (শর্ত)

ফ্লোচার্ট:

উদাহরণ:

সিস্টেমের নেমস্পেস এডুরেকা {শ্রেণি ডোওহিললুপ {পাবলিক স্ট্যাটিক শূন্যপদ মেইন (স্ট্রিং [] আরগস) {ইন্ট আই = 1, এন = 5, প্রোডাক্ট ডু {প্রোডাক্ট = এন * আই কনসোল.উব্রাইটলাইন ('{0} * {1} = { 2} ', n, i, পণ্য) i ++} থাকাকালীন (i<= 10) } } } 

// আউটপুট:

5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

শর্তাধীন

শর্তাধীন বিবৃতি মৃত্যুদন্ড কার্যকর করা হয় বিবৃতি বা গ্রুপ বিবৃতি কিছু শর্তের ভিত্তিতে যদি শর্ত সত্য তারপর সি # বিবৃতি অন্যথায় পরের কার্যকর করা হয় বিবৃতি মৃত্যুদন্ড কার্যকর করা হবে।

সি ++ ভাষায় বিভিন্ন ধরণের শর্তাধীন বিবৃতি নিম্নরূপ:

  1. যদি বিবৃতি
  2. যদি-অন্য বিবৃতি
  3. নেস্টেড যদি-অন্য বিবৃতি
  4. যদি-অন্যথায় মই
  5. বিবৃতি পরিবর্তন করুন

যদি বিবৃতি

একক যদি শর্তটি সত্য হলে কোডটি কার্যকর করতে সি # ভাষায় বিবৃতি ব্যবহৃত হয়। একে ওয়ান-ওয়ে সিলেকশন স্টেটমেন্টও বলা হয়।

বাক্য গঠন

if (বুলিয়ান-এক্সপ্রেশন) boo // বুলিয়ান-এক্সপ্রেশন সত্য হলে বিবৃতি কার্যকর করা হয়}

ফ্লোচার্ট:

সি ++ সাজান ()

উদাহরণ:

সিস্টেমের নেমস্পেসটি শর্তসাপেক্ষ {শ্রেণি ifStatement {পাবলিক স্ট্যাটিক শূন্যপদ মেইন (স্ট্রিং [] আরগস) {int সংখ্যা = 2 যদি (সংখ্যা<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// আউটপুট:

2 এর চেয়ে কম 5
এই বিবৃতি সর্বদা কার্যকর করা হয়।

যদি-অন্য বিবৃতি

দ্য অন্যথায় যদি শর্তটি সত্য বা মিথ্যা হলে কোডটি কার্যকর করতে সি ভাষায় বিবৃতি ব্যবহৃত হয়। একে দ্বিমুখী নির্বাচনের বিবৃতিও বলা হয়।

বাক্য গঠন

যদি (বুলিয়ান-এক্সপ্রেশন) {// বুলিয়ান-এক্সপ্রেশন সত্য হয় তবে বিবৃতি কার্যকর করা হয়} অন্য {// বুলিয়ান-এক্সপ্রেশন মিথ্যা হলে বিবৃতি কার্যকর করা হয়}

ফ্লোচার্ট:

উদাহরণ:

সিস্টেম নেমস্পেস শর্তসাপেক্ষ {শ্রেণি ifElseStatement {পাবলিক স্ট্যাটিক শূন্যস্থান প্রধান (স্ট্রিং [] আরগস) {int সংখ্যা = 12 যদি (সংখ্যা<5) { Console.WriteLine('{0} is less than 5', number) } else { Console.WriteLine('{0} is greater than or equal to 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// আউটপুট:

12 এর চেয়ে বড় বা 5 এর সমান
এই বিবৃতি সর্বদা কার্যকর করা হয়।

নেস্টেড যদি-অন্য বিবৃতি

নেস্টেড অন্যথায় যদি যখন কোনও প্রোগ্রামের একাধিক পরীক্ষার এক্সপ্রেশন প্রয়োজন হয় তখন স্টেটমেন্ট ব্যবহৃত হয়। এটিকে বহুতল নির্বাচনের বিবৃতিও বলা হয়। সিদ্ধান্তের একটি সিরিজ যখন কোনও বিবৃতিতে জড়িত থাকে, আমরা ব্যবহার করি অন্যথায় যদি নেস্টেড আকারে বিবৃতি।

বাক্য গঠন

if (বুলিয়ান-এক্সপ্রেশন) {if (নেস্টেড-এক্সপ্রেশন -১) {// কোড কার্যকর করতে হবে} অন্য {// কোড কার্যকর করতে হবে}} অন্য {যদি (নেস্টেড-এক্সপ্রেশন -২) {// কোড কার্যকর করতে হবে } অন্য {// কোড কার্যকর করা হবে}}

ফ্লোচার্ট:

উদাহরণ:

সিস্টেমের নেমস্পেসটি শর্তসাপেক্ষ {শ্রেণীর নেস্টেড {পাবলিক স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) ব্যবহার করে - প্রথম প্রথম = 7, দ্বিতীয় = -23, তৃতীয় = 13 যদি (প্রথম এবং জিটি দ্বিতীয়) {যদি (প্রথম

// আউটপুট:

13 বৃহত্তম

অন্যথায় - মই

দ্য if-else-if বিবৃতি একাধিক শর্ত থেকে একটি কোড চালানো ব্যবহার করা হয়। একে মাল্টিপ্যাথ ডিসিশন স্টেটমেন্টও বলা হয়। এটি if..el স্টেটমেন্টের একটি শৃঙ্খল যেখানে প্রতিটি যদি বিবৃতি অন্যটির সাথে যুক্ত থাকে তবে বিবৃতি এবং শেষটি অন্য বিবৃতি হবে।

বাক্য গঠন

যদি কন্ডিশন 1 সত্য হয় তবে সম্পাদন করতে হবে (শর্ত 1) {// কোড} অন্যথায় যদি (শর্ত 2) code // শর্তটি সত্য হয় তবে সম্পাদন করা কোড} অন্যথায় যদি (শর্ত 3) condition // কোডটি কার্যকর করা হয় শর্ত 3 সত্য হলে} ... অন্য {// সমস্ত শর্ত মিথ্যা হলে সম্পাদন করতে কোড}

ফ্লোচার্ট:

উদাহরণ:

সিস্টেম ক্লাস এডুরেকা {সার্বজনীন স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরগস) ব্যবহার করছে {আইটি আই = 20 যদি (i == 10) কনসোল.উরাইটলাইন ('আমি 10') অন্যথায় যদি (i == 15) কনসোল.উইরলটাইন (' আমি 15 ') অন্যথায় যদি (i == 20) কনসোল.উরাইটলাইন (' আমি 20 বছর ') অন্য কনসোল.উরাইটলাইন (' আমি উপস্থিত নেই ')}}

// আউটপুট:

আমার বয়স 20

বিবৃতি পরিবর্তন করুন

স্যুইচ করুন বিবৃতি দীর্ঘ সময়ের জন্য বিকল্প হিসাবে কাজ করে-অন্যথায়-যদি মই যা কেসগুলির একটি তালিকা পরীক্ষা করতে ব্যবহৃত হয়। একটি স্যুইচ স্টেটমেন্টে এক বা একাধিক কেস লেবেল থাকে যা সুইচ এক্সপ্রেশনের বিরুদ্ধে পরীক্ষা করা হয়। অভিব্যক্তিটি কোনও মামলার সাথে মিলে গেলে সেই মামলার সাথে সম্পর্কিত বিবৃতি কার্যকর করা হবে।

বাক্য গঠন

স্যুইচ (ভেরিয়েবল / এক্সপ্রেশন) {কেস মান 1: // বিবৃতি কার্যকর (বা পরিবর্তনশীল) = মান 1 বিরতি ক্ষেত্রে মান 2: // বিবৃতি কার্যকর (বা পরিবর্তনশীল) = মান 1 বিরতি যদি ... ... .. .. । ... ... ডিফল্ট: // কোনও মামলা মেলে না হলে বিবৃতি কার্যকর করা হয়েছে}

ফ্লোচার্ট:

উদাহরণ:

সিস্টেমের নেমস্পেসটি শর্তসাপেক্ষ {শ্রেণীর স্যুইচক্যাস {পাবলিক স্ট্যাটিক শূন্যস্থানীয় মেইন (স্ট্রিং [] আরগস) {চর ch কনসোল.উরাইটলাইন ('একটি বর্ণমালা প্রবেশ করান') ch = রূপান্তর করুন.টোচার (কনসোল.আরেডলাইন ()) স্যুইচ (Char.ToLower (ch )) {কেস 'এ': কনসোল.উরাইটলাইন ('স্বর') ব্রেক ব্রেক 'ই': কনসোল.উরাইটলাইন ('স্বর') ব্রেক ব্রেক 'আই': কনসোল.উরাইটলাইন ('স্বর') ব্রেক কেস 'ও': কনসোল.ওরাইটলাইন ('স্বর') ব্রেক ব্রেক 'ইউ': কনসোল.উরাইটলাইন ('স্বর') বিরতি ডিফল্ট: কনসোল.উরাইটলাইন ('স্বর নয়') বিরতি}}}}

// আউটপুট:

একটি বর্ণমালা প্রবেশ করান
হয়
স্বরবর্ণ

স্ট্রিংস

স্ট্রিং ডেটাটাইপ এর সদস্য সিস্টেম। স্ট্রিং ক্লাস এটি চরিত্রের ধরণের ডেটা সঞ্চয় করতে সক্ষম। আমরা স্টিংগুলিতে বিভিন্ন অপারেশন করতে পারিউপসংহার, তুলনা, সাবস্ট্রিং, অনুসন্ধান, ছাঁটাই, প্রতিস্থাপন এবং আরও অনেক কিছু।

স্ট্রিং এবং স্ট্রিংয়ের উপমা

সি # তে স্ট্রিং এবং স্ট্রিং সমতুল্য শব্দটি স্ট্রিং এ কীওয়ার্ড এবং হিসাবে কাজ করে সিস্টেম। স্ট্রিং ক্লাস স্ট্রিং ঘোষণার জন্য আমরা যে কোনও সংস্করণ ব্যবহার করতে পারি।

বাক্য গঠন:

স্ট্রিং এস 1 = 'এডুরেকা' // স্ট্রিং কীওয়ার্ড ব্যবহার করে স্ট্রিং তৈরি করছে স্ট্রিং এস 2 = 'হ্যাপি লার্নিং' // স্ট্রিং ক্লাস ব্যবহার করে স্ট্রিং তৈরি করা

উদাহরণ:

সিস্টেম পাবলিক ক্লাস স্ট্রিংএক্স্পেল ব্যবহার করে {পাবলিক স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) {স্ট্রিং এস 1 = 'এডুরেকা' চর [] চ = {'সি', 'এস', 'এইচ', 'এ', 'আর', ' পি ',' ',' টি ',' ইউ ',' টি ',' ও ',' আর ',' আই ',' এ ',' এল '} স্ট্রিং এস 2 = নতুন স্ট্রিং (সিএইচ) কনসোল।উইরাইটলাইন ( s1) কনসোল.রাইটলাইন (এস 2)}}

// আউটপুট:

এডুরেকা
Csharp টিউটোরিয়াল

সি # তে স্ট্রিং পদ্ধতি

পদ্ধতি বর্ণনা
ক্লোন () স্ট্রিংয়ের এই উদাহরণটিতে একটি রেফারেন্স ফেরত দিতে ব্যবহৃত হয়।
তুলনা (স্ট্রিং, স্ট্রিং) দুটি নির্দিষ্ট স্ট্রিং অবজেক্টের তুলনা করতে ব্যবহৃত হয়।
কনক্যাট (স্ট্রিং, স্ট্রিং) স্ট্রিংয়ের দুটি নির্দিষ্ট দাবী সংহত করুন।
ধারণ (স্ট্রিং) একটি নির্দিষ্ট সাব-স্ট্রিং ইঙ্গিত করে একটি মান ফেরত দিন
অনুলিপি (স্ট্রিং) একই মান সহ স্ট্রিংয়ের একটি নতুন উদাহরণ তৈরি করতে ব্যবহৃত হয়
কপিটো (ইনট, চর [], ইনট, ইনট) একটি নির্দিষ্ট অবস্থান থেকে অক্ষর অনুলিপি করে
সমান (স্ট্রিং, স্ট্রিং) দুটি স্ট্রিং অবজেক্টের একই মান রয়েছে তা নির্ধারণ করে।
ফর্ম্যাট (স্ট্রিং, অবজেক্ট) নির্দিষ্ট স্ট্রিংয়ে এক বা একাধিক ফর্ম্যাট আইটেমগুলি প্রতিস্থাপন করুন
সূচক (স্ট্রিং) প্রথম ঘটনার শূন্য-ভিত্তিক সূচকটি প্রতিবেদন করে
সন্নিবেশ করুন (ইন্ট 32, স্ট্রিং) একটি নতুন স্ট্রিং প্রত্যাবর্তন করে যার সূচীতে একটি স্ট্রিং isোকানো হয়।
ইসন্টার্নড (স্ট্রিং) ইঙ্গিত করে যে এই স্ট্রিংটি ইউনিকোড নরমালাইজেশন ফর্ম সিতে রয়েছে C.
ইসনুলআরএম্পটি (স্ট্রিং) ইঙ্গিত করে যে নির্দিষ্ট স্ট্রিংটি নাল বা একটি খালি স্ট্রিং।
ইসনুলআরওহাইটস্পেস (স্ট্রিং) নির্দিষ্ট স্ট্রিং নাল, ফাঁকা, কিনা তা বোঝাতে ব্যবহৃত
যোগদান (স্ট্রিং, স্ট্রিং []) স্ট্রিং অ্যারের সমস্ত উপাদানকে একত্রিত করতে ব্যবহৃত হয়
লাস্ট ইন্ডেক্সঅফ (চর) শেষ অক্ষরের শূন্য-ভিত্তিক সূচক অবস্থানের প্রতিবেদন করে
লাস্ট ইন্ডেক্সঅফআনি (চর []) শেষ অক্ষরের শূন্য-ভিত্তিক সূচক অবস্থানের প্রতিবেদন করে
সরান (Int32) একটি নতুন স্ট্রিং প্রদান করে যার মধ্যে সমস্ত অক্ষর
প্রতিস্থাপন (স্ট্রিং, স্ট্রিং) একটি নতুন স্ট্রিং প্রদান করে যেখানে স্ট্রিংয়ের সমস্ত উপস্থিতি
বিভক্ত (চর []) এটি স্ট্রিংগুলিকে সাবস্ট্রিংগুলিতে বিভক্ত করতে ব্যবহৃত হয়
স্টার্টস উইথ (স্ট্রিং) এই স্ট্রিংটির শুরু কিনা তা পরীক্ষা করতে এটি ব্যবহৃত হয়
সাবস্ট্রিং (ইন্ট 32) এটি এই উদাহরণ থেকে একটি স্ট্রিং পুনরুদ্ধার করতে ব্যবহৃত হয়।
টোচরআরে () এই পরিস্থিতিতে অক্ষরগুলি একটি ইউনিকোড অ্যারে অনুলিপি করে।
স্ট্রিং() এটি স্ট্রিংয়ের উদাহরণটি ফেরত দিতে ব্যবহৃত হয়।
ছাঁটাই () স্ট্রিং ছাঁটাই


অ্যারে

অন্যান্য প্রোগ্রামিং ভাষার মতো, সি # এর অ্যারে রয়েছে। অ্যারে হ'ল সহজ ডেটা স্ট্রাকচার যা একই মেটাল মেমরির স্থানে উপাদানগুলির একই ডেটাটাইপ সংরক্ষণের জন্য ডিজাইন করা হয়েছে।

সি # নিম্নলিখিত অ্যারে প্রকারগুলি সমর্থন করে।

  • একক মাত্রিক অ্যারে
  • বহুমাত্রিক অ্যারে
  • জেগড অ্যারে

একক মাত্রিক অ্যারে

একক মাত্রিক অ্যারে একক সারি আকারে উপাদান সঞ্চয় করে।

বাক্য গঠন

int [] arr = new int [5] // অ্যারে তৈরি করা

উদাহরণ:

সিস্টেম পাবলিক ক্লাস অ্যারেএক্সেম্পল ব্যবহার করে {পাবলিক স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) {ইনট [] আরআর = নতুন ইনট [5] আরআর [0] = 10 টি আরআর [1] = 20 আরআর [2] = 30 আরআর [3] = 40 টি আরআর [4] = 50 এর জন্য (ইন্টি আই = 0 আই) 

// আউটপুট:

10
বিশ
30
40
পঞ্চাশ

বহুমাত্রিক অ্যারে

বহুমাত্রিক অ্যারে ম্যাট্রিক্স এবং কিউব ইত্যাদির একাধিক মাত্রার আকারে উপাদানগুলি সঞ্চয় করে

বাক্য গঠন

ইন্ট ভাল = এ [২,৩]

উদাহরণ:

সিস্টেমের নেমস্পেস অ্যারে অ্যাপ্লিকেশন {ক্লাস মাইআরাই {স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরগস) {ইনট [,] এ = নতুন ইনট [5, 2] {{0, 0}, {1, 2}, {2, 4}, I 3, 6}, {4, 8}} int i, j for (i = 0 i)<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0},{1}] = {2}', i, j, a[i, j]) } } Console.ReadKey() } } } 

// আউটপুট:

a [0,0] = 0
a [0,1] = 0
a [1,0] = 1
a [1,1] = 2
a [2,0] = 2
a [2,1] = 4
a [3,0] = 3
a [3,1] = 6
a [4,0] = 4
a [4,1] = 8

জেগড অ্যারে

জেগড অ্যারে কেবল অ্যারের অ্যারে।

উদাহরণ:

সিস্টেমের নেমস্পেস অ্যারে অ্যাপ্লিকেশন {ক্লাস মাইআরাই {স্ট্যাটিক শূন্যপদ মেইন (স্ট্রিং [] আরগস) {ইনট [] [] a = নতুন ইনট [] [] {নতুন ইনট [] {0,0}, নতুন ইনট [] {1,2 }, নতুন ইনট [] int 2,4}, নতুন ইনট [] {3, 6}, নতুন ইনট [] {4, 8}} ইনট আই, জে এর জন্য (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } } 

// আউটপুট:

a [0] [0] = 0
a [0] [1] = 0
a [1] [0] = 1
a [1] [1] = 2
a [2] [0] = 2
a [2] [1] = 4
a [3] [0] = 3
a [3] [1] = 6
a [4] [0] = 4
a [4] [1] = 8

সংগ্রহ

সংগৃহীত ডেটাগুলির উপরে কিছু ফাংশন প্রয়োগ করতে সংগ্রহকে কেবল সংগ্রহ করা অবজেক্টগুলির একটি গ্রুপ হিসাবে বিবেচনা করা যেতে পারে। যে কোনও ক্রিয়াকলাপ সম্ভবত কোনও সংগ্রহে সম্পাদন করা হয় সেগুলি হ'ল

  • স্টোর অবজেক্ট
  • আপডেট অবজেক্ট
  • বস্তু মুছুন
  • বস্তুটি পুনরুদ্ধার করুন
  • অনুসন্ধান বস্তু, এবং
  • সাজানো বস্তু

সংগ্রহের প্রকার

সংগ্রহের সাথে কাজ করার জন্য তিনটি পৃথক সম্ভাবনা রয়েছে। তিনটি নেমস্পেস নীচে উল্লেখ করা হয়েছে:

  • সিস্টেম। সংগ্রহ। জেনেরিক ক্লাস
  • সিস্টেম। সংগ্রহ ক্লাস
  • সিস্টেম.কলেকশনস.কমারেন্ট ক্লাস

সিস্টেম.কলেশন.জেনারিক ক্লাসে নিম্নলিখিত ধরণের ক্লাস রয়েছে:

  • তালিকা
  • স্ট্যাক
  • কিউ
  • যোজিত তালিকা
  • হ্যাশসেট
  • সাজানোসেট
  • অভিধান
  • সাজানো অভিধান
  • সাজানো তালিকা

দ্য সিস্টেম। সংগ্রহ ক্লাসগুলি উত্তরাধিকার শ্রেণি হিসাবে বিবেচিত হয়। তারা নিম্নলিখিত ক্লাস অন্তর্ভুক্ত।

  • অ্যারেলিস্ট
  • স্ট্যাক
  • কিউ
  • হ্যাশ টেবিল

দ্য সিস্টেম.কলেকশনস.কমারেন্ট ক্লাসনেমস্পেস থ্রেড-নিরাপদ ক্রিয়াকলাপের জন্য ক্লাস সরবরাহ করে। এখন একাধিক থ্রেড সংগ্রহের আইটেমগুলিতে অ্যাক্সেসের জন্য সমস্যা তৈরি করবে না। এতে পাওয়া ক্লাসগুলি হ'ল,

  • ব্লকিং সংগ্রহ
  • সমকালীন ব্যাগ
  • সমকালীন স্ট্যাক
  • সমসাময়িক কিউ
  • সমকালীন অভিধান
  • পার্টিশন
  • পার্টিশন
  • অর্ডারযোগ্য পার্টিশনার

তালিকা

দ্য তালিকা উপলব্ধ একটি ডেটা স্ট্রাকচার হিসাবে বিবেচিত হয় সিস্টেম.কলেশন.জেনারিক্স নেমস্পেস এটি উপাদান সংরক্ষণ এবং আনতে পারে। তালিকাটি সদৃশ উপাদান সংরক্ষণ করতে সক্ষম।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কলেশন.জেনেরিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ মেইন (স্ট্রিং [] আরগস) {বিভিন্ন নাম = নতুন তালিকা () নাম.আড্ড ('সন্ধ্যা') নাম.এড যোগ করুন ('অরুণ') নাম.এড 'প্রশান্ত') নামগুলি ('কিরণ') পূর্বাভাস (নামগুলিতে নাম) so কনসোল.উরাইটলাইন (নাম)}}}

// আউটপুট:

Sandhya
অরুণ
প্রশান্ত
কিরণ

হ্যাশ সেট

সি # হ্যাশসেটবিভাগটি প্রায়শই অভ্যস্ত হয়স্টোর,ছাড়াইয়া লত্তয়াবাউপাদান পড়ুন। এটানাদোকান সদৃশউপাদানএটি অনুরোধ করা হয়ব্যবহার করা হ্যাশসেট বিভাগযদিআপনি পেয়েছেনজমানোএকমাত্র স্বতন্ত্র উপাদান এটা সিস্টেম.কলেশন.জেনেরিক নেমস্পেসে পাওয়া গেছে।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কলেশন.জেনারিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ মেইন (স্ট্রিং [] আরগস) {বিভিন্ন নাম = নতুন হ্যাশসেট () নামগুলি যোগ করুন ('সুনীল') নাম যোগ করুন ('আমার') নাম যোগ করুন। 'পুজারি') নামগুলি ('ইমরান') নাম যুক্ত করুন (যুক্ত করুন ('করণ') পূর্বাভাস (নামগুলির মধ্যে বর্ণ) so কনসোল.উরাইটলাইন (নাম)}}}

// আউটপুট:

সুনীল
Amar
পুজারি
ইমরান
করণ

সাজানো সেট

সি # সাজানোসেটবর্গ প্রায়শই অভ্যস্ত হয়স্টোর, অপসারণ বা পড়া উপাদান । এটি আরোহী ক্রম বজায় রাখে এবংনাদোকান সদৃশউপাদানএটি প্রম্পটसॉোর্টসেট ব্যবহার করতেবিভাগযদিআপনি পেয়েছেনজমানো স্বতন্ত্র উপাদান এবং আরোহী ক্রম বজায় রাখা।এটাসিস্টেম.কলেশন.জেনেরিক নেমস্পেসে পাওয়া গেছে।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কালেকশন.জেনেরিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ মেইন (স্ট্রিং [] আরগস) {বিভিন্ন নাম = নতুন সাজানোসেট () নাম.আড্ড ('সঞ্জয়') নাম.এড যোগ করুন ('অনুরাধা') নাম.এড করুন (যোগ করুন 'প্রবীণ') নামগুলি ('রবি') নাম যুক্ত করুন। যুক্ত করুন ('কাজল') পূর্বাচ (নামগুলির মধ্যে নাম) so কনসোল.উরাইটলাইন (নাম)}}}

// আউটপুট:

অনুরাধা
কাজল
প্রবীণ
রবি
সঞ্জয়

স্ট্যাক

দ্য স্ট্যাক নিম্নলিখিত একটি সহজ সংগ্রহ এজ বা এতে সঞ্চিত উপাদানগুলির প্রক্রিয়া করার সময় সর্বশেষে শেষ পদ্ধতিতে।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কালেকশন.জেনারিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ প্রধান (স্ট্রিং [] আরগস) ack স্ট্যাকের নামগুলি = নতুন স্ট্যাক () নামগুলি ush পুশ ('চন্দন') নামগুলি ushপুষ ('পূজা') নাম ushপুষ্প ( 'জেমস') নামগুলি ushপুষ্প ('রাজেশ') নামগুলি'পুশ ('কুমার') পূর্বাচ (নামগুলির স্ট্রিং নাম) so কনসোল.উরাইটলাইন (নাম)} কনসোল.উরাইটলাইন ('পিক উপাদান:' + নামস.পীক () ) কনসোল.ওরাইটলাইন ('পপ:' + নামস.পপ ()) কনসোল.উরাইটলাইন ('পপ পরে, পিক উপাদান:' + নামস.পীক ())}}

// আউটপুট:

কুমার
রাজেশ
জেমস
পূজা
চন্দন
পিক উপাদান: কুমার mar
পপ: কুমার
পপ পরে, পিক উপাদান: রাজেশ

কিউ

সারিটি স্ট্যাকের সাথে সম্পূর্ণরূপে সমান তবে পার্থক্যটি কেবল সারি অনুসরণ করে ফিফো অথবা এতে সঞ্চিত উপাদানগুলির প্রক্রিয়া করার সময় নীতিটি প্রথম এবং প্রথম আউট।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কালেকশন.জেনারিক পাবলিক ক্লাস এডুরেকা {সার্বজনীন স্ট্যাটিক শূন্যস্থানীয় মেইন (স্ট্রিং [] আরগস) {সারির নাম = নতুন কুই () নাম.Enqueue ('শ্রুজান') নাম.Enqueue ('প্রজত') নাম.Enqueue ( 'জন') নামগুলি। এনক্যু ('রাজু') নামগুলি। এনকুই ('হরি') পূর্বাচ (নামগুলির স্ট্রিং নাম) so কনসোল.উরাইটলাইন (নাম)} কনসোল.উরাইটলাইন ('পিক উপাদান:' + নামস.পীক () ) কনসোল.উরাইটলাইন ('ডেকিউ:' + নামস.ডেকিউ ()) কনসোল.উরাইটলাইন ('ডিকিউর পরে, পিক উপাদান:' + নামস.পিক ())}}

// আউটপুট:

শ্রুজান
প্রজাত
জন
উগ্র
দিন
পিক উপাদান: শ্রুজান
প্রবীণ: শ্রুজান
ডেকুয়ের পরে, পিক উপাদান: প্রজাত

যোজিত তালিকা

সংযুক্ত তালিকাটি একটি গতিশীল মেমরি সংগ্রহ। সংযুক্ত তালিকার উপাদানগুলি গাদা থেকে মেমরিটি অ্যাক্সেস করে এবং ঠিকানাগুলি লিঙ্ক করে অবিচ্ছিন্ন ক্রমে উপাদানগুলি সঞ্চয় করে সংরক্ষণ করা হয়।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কালেকশন.জেনারিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ প্রধান (স্ট্রিং [] আরগস) {বিভিন্ন নাম = নতুন লিংকডলিস্ট () নাম.এডলাস্ট ('রজত') নাম.এডলাস্ট ('অরুণ') নাম.এডলাস্ট (অ্যাডলাস্ট) 'প্রকাশ') নাম। অ্যাডলাস্ট ('জয়') নাম.এড অ্যাড ফার্স্ট ('সাই') পূর্বাচ (নামগুলির মধ্যে নাম) so কনসোল.উরাইটলাইন (নাম)}}}

// আউটপুট:

সাই
গণ্ডি
অরুণ
Prakash
জয়

অভিধান

অভিধান বিভাগব্যবহার করেধারণাহ্যাশটেবলের। এটিতে মানগুলি সঞ্চয় করেভিত্তিচাবি। এটি রয়েছেস্বতন্ত্রচাবিএকমাত্র। দ্বারাসহায়তাচাবি,আমরা সহজভাবে করবঅনুসন্ধান বাউপাদান দূরে নিতেএটাসিস্টেম.কলেশন.জেনেরিক নেমস্পেসে পাওয়া গেছে।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কালেকশন.জেনারিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক অকার্যকর মূল (স্ট্রিং [] আরগস) {অভিধানের নাম = নতুন অভিধান () নাম.এড যোগ করুন ('1', 'শিব') নাম যোগ করুন ('2', 'প্রসাদ') নামগুলি.এড করুন ('3', 'প্রীতম') নামগুলি যোগ করুন ('4', 'রায়') নামগুলি যোগ করুন ('5', 'আকাশ') পূর্বাভাস (নামগুলিতে কীভ্যালিউপিয়ার কেভি) so কনসোল। রাইটলাইন (কেভি.কি + + '' + কেভি.ভ্যালু)}}}

// আউটপুট:

1 শিব
2 প্রসাদ
3 প্রীতম
4 রায়
Akash

সাজানো অভিধান

দ্য সাজানো অভিধান বিভাগব্যবহার করেনকশাহ্যাশটেবলের। এটিতে মানগুলি সঞ্চয় করেবুদ্ধিটাচাবি। এটি রয়েছেস্বতন্ত্রকী এবং আরোহী ক্রম বজায় রাখেবুদ্ধিটাচাবি। দ্বারাসহায়তাচাবি,আমরা সহজভাবে করবঅনুসন্ধান বাউপাদান দূরে নিতেএটাসিস্টেম.কলেশন.জেনেরিক নেমস্পেসে পাওয়া গেছে।

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কলেশন.জেনারিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ প্রধান (স্ট্রিং [] আরগস) orted সাজানো অভিধানের নাম = নতুন সাজানো অভিধান () নাম.এড ('1', 'অরুণ') নাম যোগ করুন ('4', যোগ করুন 'বিশাল') নামগুলি। সংযোজন ('5', 'রমেশ') নামগুলি যোগ করুন ('3', 'বিদ্যা') নামগুলি যোগ করুন ('2', 'পল্লবী') পূর্বাভাস (নামগুলিতে কীভ্যালিউপায়ার কেভি)) কনসোল। রাইটলাইন (কেভি.কি + + '' + কেভি.ভ্যালু)}}}

// আউটপুট:

1 শিব
2 প্রসাদ
3 প্রীতম
4 রায়
৫Akash

সাজানো তালিকা

দ্য সাজানো তালিকা হয়একটিকী / মান জোড়ার অ্যারে। এটিতে মানগুলি সঞ্চয় করেভিত্তিচাবি। সাজানো তালিকাবিভাগথাকেস্বতন্ত্রকী এবং আরোহী ক্রম বজায় রাখেভিত্তিচাবি। দ্বারাসহায়তাচাবি,আমরা সহজভাবে সক্ষমঅনুসন্ধান বা অপসারণউপাদানএটাপাওয়া সিস্টেম। সংগ্রহ। জেনেরিক নেমস্পেস

কিভাবে একটি হ্যাশম্যাপ বাস্তবায়ন

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম.কলেশন.জেনারিক পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক শূন্যপুর্ণ প্রধান (স্ট্রিং [] আরগস) orted সাজানো অভিধানের নাম = নতুন সাজানো অভিধান () নাম.এড ('1', 'অরুণ') নাম যোগ করুন ('4', যোগ করুন 'বিশাল') নামগুলি। সংযোজন ('5', 'রমেশ') নামগুলি যোগ করুন ('3', 'বিদ্যা') নামগুলি যোগ করুন ('2', 'পল্লবী') পূর্বাভাস (নামগুলিতে কীভ্যালিউপায়ার কেভি)) কনসোল। রাইটলাইন (কেভি.কি + + '' + কেভি.ভ্যালু)}}}

// আউটপুট:

1 অরুণ
2 পল্লবী
3 বিদ্যা
4 Vishal
৫রমেশ

কাঠামো

কাঠামোটি একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটাটাইপ যা বিভিন্ন ডেটাটাইপের একাধিক উপাদান সংরক্ষণের জন্য ডিজাইন করা। কাঠামোটি কীওয়ার্ড ব্যবহার করে ঘোষণা করা হয় কাঠামো

উদাহরণ:

সিস্টেম স্ট্রাক্ট বই ব্যবহার করে {পাবলিক স্ট্রিং শিরোনাম পাবলিক স্ট্রিং রাইটার পাবলিক স্ট্রিং সাবজেক্ট পাবলিক ইন বুক_আইডি} পাবলিক ক্লাস এডুরেকা {পাবলিক স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) {বই বুক 1 বই Book2 Book1.title = 'সি # প্রোগ্রামিং' Book1.author = ' রামচন্দ্র কুমার 'Book1.subject =' সি ++ প্রোগ্রামিং টিউটোরিয়াল 'Book1.book_id = 95908978 Book2.title =' টেলিকম বিলিং 'Book2.author =' করণ 'Book2.subject =' টেলিকম বিলিং টিউটোরিয়াল 'Book2.book_id = 18674900 কনসোল.ব্রাইটলাইন ( 'বইয়ের 1 শিরোনাম: {0}', Book1.title) কনসোল.উরাইটলাইন ('বুক 1 লেখক: {0}', Book1.author) কনসোল.উরাইটলাইন ('বুক 1 বিষয়: {0}', Book1.subject) কনসোল.ওরাইটলাইন ('বুক 1 book_id: {0}', Book1.book_id) কনসোল.উরাইটলাইন ('বুক 2 শিরোনাম: {0}', Book2.title) কনসোল.ব্রাইটলাইন ('বুক 2 লেখক: {0}', Book2.author) কনসোল.ওরাইটলাইন ('বুক 2 বিষয়: {0}', Book2.subject) কনসোল.ওরাইটলাইন ('বুক 2 book_id: {0}', Book2.book_id) কনসোল.আরডকে ()}}

// আউটপুট:

পুস্তক 1 শিরোনাম: সি # প্রোগ্রামিং
বই 1 লেখক: রামচন্দ্র কুমার
বই 1 বিষয়: সি ++ প্রোগ্রামিং টিউটোরিয়াল
বই 1 book_id: 95908978
বই 2 শিরোনাম: টেলিকম বিলিং
বই 2 লেখক: করণ
বই 2 বিষয়: টেলিকম বিলিং টিউটোরিয়াল
বই 2 book_id: 18674900

কার্যাদি

ফাংশনটি মূল কোডের কোডের একটি ব্লক হিসাবে সংজ্ঞায়িত করা হয়। ফাংশনটি কোড ব্লকে বর্ণিত বিবৃতিগুলি কার্যকর করতে ব্যবহৃত হয়। একটি ফাংশন নিম্নলিখিত উপাদান নিয়ে গঠিত।

  • ফাংশন নাম: এটি একটি স্বতন্ত্র নাম যা একটি ফাংশন কল করার জন্য ব্যবহৃত হয়।
  • রিটার্ন প্রকার: এটি ফাংশন রিটার্ন মানের ডেটা ধরণের নির্দিষ্ট করে।
  • দেহ: এতে এক্সিকিউটেবল স্টেটমেন্ট থাকে।
  • অ্যাক্সেস নির্দিষ্টকরণকারী: এটি অ্যাপ্লিকেশনটিতে ফাংশন অ্যাক্সেসযোগ্যতা নির্দিষ্ট করে।
  • পরামিতি: এটি আর্গুমেন্টগুলির একটি তালিকা যা আমরা কল করার সময় ফাংশনে যেতে পারি can

বাক্য গঠন

ফাংশননাম () {// ফাংশন বডি // রিটার্ন স্টেটমেন্ট}

উদাহরণ:

সিস্টেমের নেমস্পেস ফাংশনএক্সেমেল ব্যবহার করে {শ্রেণির এডুরেকা {পাবলিক স্ট্রিং শো (স্ট্রিং মেসেজ) so কনসোল.উরাইটলাইন ('ইনসাইড শো ফাংশন') রিটার্ন বার্তা v স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {এডুরেকা প্রোগ্রাম = নতুন এডুরেকা () স্ট্রিং মেসেজ = প্রোগ্রাম .শো ('টু এডুরেকা') কনসোল.উরাইটলাইন ('স্বাগতম' + বার্তা)}}

// আউটপুট:

ভিতরে শো ফাংশন
এডুরেকা আপনাকে স্বাগতম

কার্য 3 বিভিন্ন উপায়ে কার্যকর করা যেতে পারে:

  • মান দ্বারা কল করুন
  • রেফারেন্স দ্বারা কল করুন
  • আউট প্যারামিটার

মান দ্বারা কল করুন

সি # তে, মান টাইপ পরামিতিহয়যে পাসএকটি প্রতিরূপমূল মানপরিবর্তে ফাংশনরেফারেন্স এটানাপরিবর্তন করুনপ্রথম মান। একটিসংশোধনী তৈরিউত্তীর্ণমান হয় নাবয়সনির্দিষ্ট মানমধ্যেনিম্নলিখিত উদাহরণ,আমরা পেয়েছিপাসমান জুড়েদ্যকল

উদাহরণ:

সিস্টেমের নেমস্পেস কলবিয়ভ্যালু {শ্রেণির এডুরেকা {সার্বজনীন শূন্য শো (ইন্ট ভ্যাল) {ভাল * = ভাল কনসোল.উরাইটলাইন ('শো ফাংশনের অভ্যন্তরের মান' + ভল)) স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {ইনট ভেল = 50 এডুরেকা প্রোগ্রাম = নতুন এডুরেকা () কনসোল.উরাইটলাইন ('ফাংশন কল করার আগে মান' + ভাল) প্রোগ্রাম। দেখান (ভাল) কনসোল.উরাইটলাইন ('ফাংশন কল করার পরে মান' + ভাল)}}}

// আউটপুট:

50 ফাংশন কল করার আগে মান
শো ফাংশনটির ভিতরে মান 2500
50 ফাংশন কল করার পরে মান

রেফারেন্স দ্বারা কল করুন

রেফারেন্স পদ্ধতিতে কল করে,প্রতি রেফ যুক্তিটি রেফারেন্স-টাইপ হিসাবে পাস করার জন্য কীওয়ার্ড। এটি মূল মানের একটি অনুলিপি পরিবর্তে ফাংশনে আর্গুমেন্টের রেফারেন্সটি পাস করে। পাস হওয়া মানগুলির পরিবর্তনগুলি স্থায়ী এবং পরিবর্তন করুন মূল পরিবর্তনশীল মান।

উদাহরণ:

সিস্টেম নেমস্পেস কলবিয়েরিফারেন্স {ক্লাস এডুরেকা {সার্বজনীন শূন্য শো (রেফ ইন্ট ভ্যাল) {ভাল * = ভাল কনসোল.উরাইটলাইন ('শো ফাংশনের অভ্যন্তরের মান' + ভাল)} স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {ইনট ভেল = 50 এডুরেকা প্রোগ্রাম = নতুন এডুরেকা () কনসোল.উরাইটলাইন ('ফাংশনটি কল করার আগে মান' + ভাল) প্রোগ্রাম h দেখান (রেফারি ভাল) কনসোল.উরাইটলাইন ('ফাংশন কল করার পরে মান' + ভাল)}}}

// আউটপুট:

50 ফাংশন কল করার আগে মান
শো ফাংশনটির ভিতরে মান 2500
ফাংশন 2500 কল করার পরে মান

আউট প্যারামিটার

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

উদাহরণ:

সিস্টেমের নেমস্পেস আউটপ্যারামিটার {শ্রেণির এডুরেকা {সার্বজনীন শূন্যতা প্রদর্শন (আউট ইন ভাল) {ইন্ট বর্গ = 5 ভাল = বর্গক্ষেত্র * = ভাল} স্ট্যাটিক শূন্যপুর্ণ প্রধান (স্ট্রিং [] আরগস) {ইন্ট ভল = 50 এডুরেকা প্রোগ্রাম = নতুন এডুরেকা () কনসোল.উরাইটলাইন ('ভেরিয়েবল পাস করার আগে মান' + ভাল) প্রোগ্রাম। দেখান (আউট ভাল) কনসোল.উরাইটলাইন ('আউট ভেরিয়েবলটি পুনরুদ্ধারের পরে মান')}}}

// আউটপুট:

চলক 50 পাস করার আগে মান ue

মানআউট ভেরিয়েবল 25 পাওয়ার পরে

এখন আসুন অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং পদ্ধতিএর ধারণার ভিত্তিতে একটি প্রোগ্রামিং দৃষ্টান্ত বস্তু যে ধারণ করে ডেটা সদস্য এবং পদ্ধতি তাদের সম্পর্কিত। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের প্রাথমিক উদ্দেশ্য হ'ল প্রোগ্রামগুলির নমনীয়তা এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করা

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের বৈশিষ্ট্য:

  • এটি পদ্ধতির চেয়ে ডেটাগুলিতে বেশি জোর দেয়।
  • প্রোগ্রামগুলিকে বস্তুগুলিতে ভাগ করা হয় যার ফলে এটি কাজ করা সহজ হয়।
  • ডেটা স্ট্রাকচারগুলি এমনভাবে ডিজাইন করা হয়েছে যাতে তারা বস্তুগুলিকে বৈশিষ্ট্যযুক্ত করে।
  • যে কাজগুলি কাজ করে চালুকোনও অবজেক্টের ডেটা ডেটা স্ট্রাকচারে একসাথে রাখা হয়।
  • ডেটা লুকানো আছে এবং অনুমতি ব্যতীত বাহ্যিক ফাংশন দ্বারা অ্যাক্সেস করা যায় না।
  • ফাংশনের সাহায্যে অবজেক্টের মধ্যে যোগাযোগ হতে পারে।
  • নতুন ডেটা এবং ফাংশন যুক্ত করা সহজ হয়ে গেছে।
  • প্রোগ্রাম ডিজাইনের নীচের অংশটি অনুসরণ করে।

সি # তে অবজেক্ট-ওরিয়েন্টেড প্যারাডিজমগুলি নিম্নরূপ

সি # তে গণনা

এনাম বা এছাড়াও হিসাবে পরিচিত গণনা সি # তে একটি সি # প্রোগ্রামের পুরো সম্পাদনার সময় তাদের কোনও পরিবর্তন না করে ধ্রুবক মান সংরক্ষণ করতে ব্যবহৃত হয়। এটানামী ধ্রুবকগুলির একটি সেট যেমন seasonতু, দিন, মাস, আকার ইত্যাদি সঞ্চয় করতে ব্যবহৃত হয়

উদাহরণ:

সিস্টেম পাবলিক ক্লাস EnumExample {পাবলিক এনাম সপ্তাহ {সোমবার, মঙ্গলবার, বুধবার, বৃহস্পতিবার, শুক্রবার, শনিবার, রবিবার} পাবলিক স্ট্যাটিক অকার্যকর মেইন () x int x = (int) সপ্তাহ. সোমবার int y = (int) সপ্তাহ.ফ্রিডিয়া কনসোল .রাইটলাইন ('সোমবার = {0}', এক্স) কনসোল.উরাইটলাইন ('শুক্রবার = {0}', y)}

// আউটপুট:

সোমবার = ০
শুক্রবার = 4

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং অ্যাপ্রোচ

নীচের নির্দেশিত পদ্ধতি অনুসরণ করে প্রোগ্রামিংয়ের অবজেক্ট-ওরিয়েন্টেড স্টাইলটি অর্জন করা যেতে পারে।

এনক্যাপসুলেশন

এনক্যাপসুলেশন একত্রিত করার একটি পদ্ধতি পদ্ধতি পাশাপাশি তাদের ডেটা সদস্য।

উদাহরণ:

সিস্টেম নেমস্পেস এডুরেকা {শ্রেণীর আয়তক্ষেত্র {পাবলিক ডাবল দৈর্ঘ্য পাবলিক ডাবল প্রস্থ পাবলিক ডাবল গেটেরিয়া () {রিটার্ন দৈর্ঘ্য * প্রস্থ} পাবলিক শূন্য প্রদর্শন () so কনসোল.উইরটলাইন ('দৈর্ঘ্য: {0}', দৈর্ঘ্য) কনসোল.উইরটলাইন (' প্রস্থ: {0} ', প্রস্থ) কনসোল.উরাইটলাইন (' অঞ্চল: {0} ', গেটআরিয়া ())}} শ্রেণীর এক্সিকিউট রেক্টেঙ্গেল {স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {আয়তক্ষেত্র r = নতুন আয়তক্ষেত্র () r.leth = 50 r.width = 35 r.Display () Console.ReadLine ()}}}

// আউটপুট:

দৈর্ঘ্য: 50
প্রস্থ: 35
আয়তন: 1750

বিমূর্ততা

বিমূর্ততা একটি পদ্ধতি আড়াল তাকে প্রয়োজনীয় প্রয়োজনীয় তথ্য সরবরাহ করে ব্যবহারকারীর কাছ থেকে জটিল কোডিং অংশ।

উদাহরণ:

সিস্টেম পাবলিক অ্যাবস্ট্রাক্ট ক্লাস শেপ ব্যবহার করে {পাবলিক অ্যাবস্ট্রাক্ট শূন্য অঙ্কন ()} পাবলিক বর্গ আয়তক্ষেত্র: আকার {পাবলিক ওভাররাইড শূন্য অঙ্কন () so কনসোল.উরাইটলাইন ('অঙ্কন আয়তক্ষেত্র ...')} class পাবলিক ক্লাস সার্কেল: শেপ {পাবলিক ওভাররাইড শূন্য অঙ্কন () so কনসোল.উরাইটলাইন ('অঙ্কন বৃত্ত ...')}} পাবলিক ক্লাস টেস্টএবস্ট্রাক্ট {পাবলিক স্ট্যাটিক অকার্যকর প্রধান () {শেপ এসএস = নতুন আয়তক্ষেত্র () s.draw () s = নতুন সার্কেল () s.draw ()}}

// আউটপুট:

আয়তক্ষেত্র অঙ্কন ...
অঙ্কন বৃত্ত ...

ইন্টারফেস

দ্য ইন্টারফেস অ্যাবস্ট্রাকশন সম্পূর্ণরূপে অনুরূপ। একটি ইন্টারফেসের কার্যকারিতা হ'ল ব্যবহারকারীর কাছ থেকে গুরুত্বহীন ডেটা গোপন করা এবং তাকে প্রয়োজনীয় একমাত্র গুরুত্বপূর্ণ ডেটা সরবরাহ করা।

উদাহরণ:

সিস্টেম পাবলিক ইন্টারফেস ব্যবহার করে অঙ্কনযোগ্য {অকার্যকর অঙ্কন ()} পাবলিক ক্লাস আয়তক্ষেত্র: অঙ্কনযোগ্য {পাবলিক বায়ুডাল অঙ্কন () so কনসোল.উরাইটলাইন ('অঙ্কন আয়তক্ষেত্র ...')} পাবলিক বর্গ চেনাশোনা: অঙ্কনযোগ্য {পাবলিক শূন্য ড্র () so কনসোল .WritLine ('অঙ্কন বৃত্ত ...')} class পাবলিক ক্লাস টেস্টইন্টারফেস {পাবলিক স্ট্যাটিক অকার্যকর মূল () w অঙ্কনযোগ্য ডিডি = নতুন আয়তক্ষেত্র () d.draw () d = নতুন বৃত্ত () d.draw ()}}

// আউটপুট:

আয়তক্ষেত্র অঙ্কন ...
অঙ্কন বৃত্ত ...

পলিমারফিজম

পলিমারফিজমএর সংমিশ্রণ 'বহু' + 'আকার' যার অর্থ বহু রূপ। এটি গ্রীক শব্দ is এর অর্থ কোড বিভাগটি একাধিক ফর্ম নিতে পারে। আমাদের দুটি ধরণের পলিমারফিজম রয়েছে।

  • সংকলন সময় বহুবচন
  • রান টাইম পলিমারফিজম

উদাহরণ:

সিস্টেম পাবলিক ক্লাস অ্যানিম্যাল using পাবলিক স্ট্রিং রঙ = 'সাদা'} পাবলিক ক্লাস কুকুর: প্রাণী {পাবলিক স্ট্রিং রঙ = 'কালো'} পাবলিক ক্লাসের টেস্টসিল {পাবলিক স্ট্যাটিক শূন্যপুর্ণ প্রধান () {অ্যানিম্যাল ডি = নতুন কুকুর () কনসোল.উরাইটলাইন ( d.color)}}

// আউটপুট:

সাদা

উত্তরাধিকার

উত্তরাধিকার এমন একটি প্রক্রিয়া যার মধ্যে একটি বস্তু তার প্যারেন্ট অবজেক্টের সমস্ত বৈশিষ্ট্য এবং আচরণগুলি স্বয়ংক্রিয়ভাবে অর্জন করে। আপনি অন্যান্য শ্রেণিতে সংজ্ঞায়িত বৈশিষ্ট্য এবং আচরণগুলি পুনরায় ব্যবহার, প্রসারিত বা সংশোধন করতে পারেন। যে শ্রেণিটি অন্য শ্রেণীর সদস্যদের উত্তরাধিকার সূত্রে প্রাপ্ত তাকে ডাকা হয় উত্পন্ন ক্লাস এবং যে শ্রেণীর সদস্যরা উত্তরাধিকার সূত্রে প্রাপ্ত তাকে ক্লাস বলা হয় বেস ক্লাস প্রাপ্ত বর্গটি বেস শ্রেণির জন্য বিশেষায়িত শ্রেণি।

জাভা জিট কি?

একক স্তরের উত্তরাধিকারের উদাহরণ

সিস্টেম নেমস্পেস আয়তক্ষেত্র অ্যাপ্লিকেশন {শ্রেণি আয়তক্ষেত্র {সুরক্ষিত দ্বৈত দৈর্ঘ্য সুরক্ষিত দ্বৈত প্রস্থের সরকারী আয়তক্ষেত্র (ডাবল এল, ডাবল ডাব্লু) {দৈর্ঘ্য = ল প্রস্থ = ডাব্লু} পাবলিক ডাবল গেটেরিয়া () {রিটার্ন দৈর্ঘ্য * প্রস্থ} পাবলিক শূন্য প্রদর্শন () so কনসোল। WritLine ('দৈর্ঘ্য: {0}', দৈর্ঘ্য) কনসোল.উরাইটলাইন ('প্রস্থ: {0}', প্রস্থ) কনসোল.উরাইটলাইন ('অঞ্চল: {0}', গেটআরিয়া ())}} ক্লাস ট্যাবলেট: আয়তক্ষেত্র {ব্যক্তিগত ডাবল ব্যয়ের পাবলিক ট্যাবলেটপ (ডাবল এল, ডাবল ডাব্লু): বেস (এল, ডাব্লু)}} পাবলিক ডাবল গেটকোস্ট () {ডাবল ব্যয় ব্যয় = গেটআরিয়া () * 70 রিটার্ন ব্যয়} পাবলিক শূন্য প্রদর্শন () {বেস.ডিসপ্লে () কনসোল .ব্রাইটলাইন ('মূল্য: {0}', গেটকোস্ট ())}} শ্রেণীর এক্সিকিউট রেক্টেঙ্গেল {স্ট্যাটিক শূন্যস্থানীয় মেইন (স্ট্রিং [] আরগস) {ট্যাবলেটপ টি = নতুন ট্যাবলেটআপ (4.5, 7.5) টি। ডিসপ্লে () কনসোল.রেডলাইন () }}}

// আউটপুট:

দৈর্ঘ্য: 4.5
প্রস্থ: 7.5
আয়তন: 33.75
ব্যয়: 2362.5

বহু-স্তরের উত্তরাধিকারের উদাহরণ

সিস্টেমের নেমস্পেস ইনহেরিট্যান্স অ্যাপ্লিকেশন {বর্গের আকার {পাবলিক শূন্য সেটওয়াইডথ (ইনট্রেইন ডাব্লু) {প্রস্থ = ডাব্লু} পাবলিক শূন্য সেট হাইট (ইন্টিচ h) {উচ্চতা = এইচ} সুরক্ষিত প্রস্থ সুরক্ষিত দৈর্ঘ্যের উচ্চতা} পাবলিক ইন্টারফেস পেইন্টকাস্ট {ইন গেটকোস্ট (অন্তর্গত অঞ্চল)} শ্রেণীর আয়তক্ষেত্র: শেপ, পেইন্টকোস্ট {পাবলিক ইন গেটআরিয়া () {রিটার্ন (প্রস্থ * উচ্চতা)} পাবলিক ইন্ট গেটকোস্ট (ইনট এরিয়া) {রিটার্ন এরিয়া * 70}} ক্লাস রেক্টেঙ্গেল টেষ্টার {স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) {আয়তক্ষেত্র রেক্ট = নতুন আয়তক্ষেত্র () অন্তর্গত অঞ্চল Rect.setWidth (5) রেক্ট.সেটহাইট (7) অঞ্চল = Rect.getArea () কনসোল.উরাইটলাইন ('মোট ক্ষেত্র: {0}', রেক্ট.জেটআরিয়া ()) কনসোল.রেটলাইন ('মোট) পেইন্টের ব্যয়: $ {0} ', রেক্ট.জেটকোস্ট (অঞ্চল)) কনসোল e রিডকি ()}}}

// আউটপুট:

মোট এলাকা: 35
মোট পেইন্টের ব্যয়: 2450 ডলার

ওভারলোডিং

ওভারলোডিং এমন একটি পরিস্থিতি যেখানে আমাদের দুটি বা সদস্য একই নাম ব্যবহার করে ঘোষিত হয়। ওভারলোডিংও সম্ভব যখন আমরা একই নামে দুটি বা আরও বেশি পদ্ধতি ঘোষণা করি। আসুন আমরা উভয়ের উদাহরণ পরীক্ষা করি।

সদস্য ওভারলোডিং

উদাহরণ:

সিস্টেম পাবলিক ক্লাস এডুরেকা ব্যবহার করে {পাবলিক স্ট্যাটিক ইনট অ্যাড (ইন্ট এ, ইনট বি) {রিটার্ন একটি + বি} পাবলিক স্ট্যাটিক ইনট অ্যাড (ইন্ট এ, ইনট বি, ইন্ট সি) a একটি + বি + সি {Test পাবলিক ক্লাস টেস্টমেমবার ওভারলোডিং { পাবলিক স্ট্যাটিক অকার্যকর মেইন () {কনসোল.উরাইটলাইন (এডুরেকা.এডিডি (12, 23%) কনসোল.উরাইটলাইন (এডুরেকা.এডিডি (12, 23, 25))}}

// আউটপুট:

35
60

পদ্ধতি ওভারলোডিং

উদাহরণ:

সিস্টেম পাবলিক ক্লাস এডুরেকা ব্যবহার করে {পাবলিক স্ট্যাটিক ইনট অ্যাড (ইন্ট এ, ইনট বি) a রিটার্ন একটি + বি} পাবলিক স্ট্যাটিক ফ্লোট অ্যাড (ফ্লোট এ, ফ্লোট বি) {একটি + বি {{পাবলিক ক্লাস টেস্টমেমবার ওভারলোডিং {পাবলিক স্ট্যাটিক অকার্যকর মেইন ( ) {কনসোল.ওরাইটলাইন (এডুরেকা.এডিডি (12, 23%) কনসোল.উরাইটলাইন (এডুরেকা.এডিডি (12.4f, 21.3f))}}

// আউটপুট:

35
33.699997

ওভাররাইডিং

ওভাররাইডিং এমন একটি পরিস্থিতি যেখানে শিশু শ্রেণি একই পদ্ধতিটিকে পিতামাতার পাশাপাশি সংজ্ঞা দেয় def আসুন এটি একটি ছোট উদাহরণের মাধ্যমে বুঝতে পারি।

উদাহরণ:

সিস্টেম পাবলিক ক্লাস এডুরেকা {পাবলিক ভার্চুয়াল শূন্যতাযুক্ত খাবার () so কনসোল.উইরটলাইন ('খাওয়া')}} সার্বজনীন শ্রেণির কুকুর: এডুরেকা {পাবলিক ওভাররাইড শূন্য খাওয়া () so কনসোল.উরাইটলাইন ('খাবার খাওয়া')} class পাবলিক ক্লাস ওভাররাইড {পাবলিক স্ট্যাটিক অকার্যকর মেইন () {কুকুর d = নতুন কুকুর () d.eat ()}}

// আউটপুট:

খাবার খাচ্ছি

নেমস্পেস

দ্য নেমস্পেস মূলত প্রোগ্রামে উপস্থিত একাধিক ক্লাস পরিচালনা করতে ব্যবহৃত হয়। নাম স্থানটি বিভিন্ন উপায়ে পাওয়া যায়।

  • সিস্টেম.কনসোল: এখানে পদ্ধতি নামস্থান হয়ে যায়
  • একটি নেমস্পেসের ক্লাস অ্যাক্সেস করতে, আমাদের ব্যবহার করা দরকার namespacename.classname।
  • আমরা ব্যবহার করতে পারেন ব্যবহার কীওয়ার্ড হিসাবে।

উদাহরণ:

সিস্টেমের সাহায্যে প্রথম ব্যবহার করে দ্বিতীয় নেমস্পেস প্রথম {পাবলিক ক্লাস এডুরেকা {সার্বজনীন শূন্যপদ বলুন ওয়েলকোম () so কনসোল.উরাইটলাইন ('ওয়েলকাম টু এডুরেকা')}}} নেমস্পেস দ্বিতীয় class পাবলিক ক্লাস হ্যাপি_লাইয়ারিং {পাবলিক অকার্যকর কথায় উইশ () so কনসোল.উরাইটলাইন (' হ্যাপি লার্নিং ')}}} পাবলিক ক্লাসের নেমস্পেস {পাবলিক স্ট্যাটিক অকার্যকর মেইন () {এডুরেকা এইচ 1 = নতুন এডুরেকা () হ্যাপি_লিয়ার্নিং ডাব্লু 1 নতুন নতুন হ্যাপি_লাইર્નিং () এইচ 1.সায় ওয়েলকাম () ডব্লিউ 1.সেই উইশ ()}}

// আউটপুট:

এডুরেকা আপনাকে স্বাগতম
হ্যাপি লার্নিং

ফাইল অপারেশন

দ্য ফাইল অপারেশন সি # তে উপলব্ধ নিম্নরূপ:

অপারেশন বর্ণনা
বাইনারিআডার বাইনারি স্ট্রিম থেকে আদিম ডেটা পড়ে।
বাইনারি রাইটার বাইনারি ফর্ম্যাটে আদিম ডেটা লিখে।
বাফার্ড স্ট্রিম বাইটগুলির স্ট্রিমের জন্য অস্থায়ী স্টোরেজ।
ডিরেক্টরি ডিরেক্টরি কাঠামো পরিচালনা করতে সহায়তা করে।
ডিরেক্টরি ডিরেক্টরিতে ক্রিয়াকলাপ সম্পাদনের জন্য ব্যবহৃত হয়।
ড্রাইভআইএনফো ড্রাইভগুলির জন্য তথ্য সরবরাহ করে।
ফাইল ফাইলগুলি চালিত করতে সহায়তা করে।
ফাইল তথ্য ফাইলগুলিতে অপারেশন সম্পাদনের জন্য ব্যবহৃত হয়।
ফাইল স্ট্রিম কোনও ফাইলের যে কোনও স্থানে থেকে পড়তে এবং লিখতে ব্যবহৃত হয়।
স্মৃতিপ্রবাহ স্মৃতিতে সঞ্চিত স্ট্রিমযুক্ত ডেটাতে এলোমেলো অ্যাক্সেসের জন্য ব্যবহৃত হয়।
পথ পথের তথ্যের উপর অপারেশন করে।
স্ট্রিমরিডার বাইট স্ট্রিম থেকে অক্ষরগুলি পড়ার জন্য ব্যবহৃত হয়।
স্ট্রিম রাইটার একটি স্ট্রিমে অক্ষর লেখার জন্য ব্যবহৃত হয়।
স্ট্রিংরেডার স্ট্রিং বাফার থেকে পড়ার জন্য ব্যবহৃত হয়।
স্ট্রিং রাইটার স্ট্রিং বাফারে লেখার জন্য ব্যবহৃত হয়।

ফাইলমোড

দ্য ফাইলমোড একাধিক ফাইল খোলার পদ্ধতি সংজ্ঞায়িত করে এমন একটি গণক। ফাইলমোড এনুমুলেটর এর সদস্যদের নিম্নরূপ বর্ণনা করা হয়েছে:

  • সংযোজন: এটি একটি বিদ্যমান ফাইল খোলে এবং কার্সারটিকে ফাইলের শেষে রাখে বা ফাইলটি উপস্থিত না থাকলে ফাইল তৈরি করে।
  • সৃষ্টি: এটি একটি নতুন ফাইল তৈরি করার জন্য ডিজাইন করা হয়েছে।
  • নতুন তৈরী করা: এটি অপারেটিং সিস্টেমে নির্দিষ্ট করার জন্য ডিজাইন করা হয়েছে, এটি একটি নতুন ফাইল তৈরি করা উচিত।
  • খোলা: এটি একটি বিদ্যমান ফাইল খোলার জন্য ডিজাইন করা হয়েছে।
  • ওপেনআরক্রিয়েট: এটি অপারেটিং সিস্টেমটি নির্দিষ্ট করার জন্য ডিজাইন করা হয়েছে যে এটি উপস্থিত থাকলে কোনও ফাইল খোলা উচিত, অন্যথায় এটি একটি নতুন ফাইল তৈরি করা উচিত।
  • কাটা: ছাঁটাই একটি বিদ্যমান ফাইল খোলে এবং এর আকার শূন্য বাইটে ছাড়ে।

ফাইলঅ্যাক্সেস

ফাইলঅ্যাক্সেস গণকের একটি নির্দিষ্ট ফাইলে অ্যাক্সেস অর্জন করতে ব্যবহৃত হয়। এটিতে নিম্নলিখিত সদস্য রয়েছে।

  • পড়ুন
  • লিখুন
  • রিড রাইট

নথি আদান প্রদান

দ্য নথি আদান প্রদান একটি নির্দিষ্ট ফাইল ভাগ করে নেওয়ার জন্য ব্যবহৃত হয়। এটিতে নিম্নলিখিত সদস্য রয়েছে।

  • উত্তরাধিকারী: উত্তরাধিকারসূত্রে কোনও ফাইলহ্যান্ডলকে শিশু প্রক্রিয়াগুলিতে একটি উত্তরাধিকার পাস করার অনুমতি দেয়।
  • কোনটি নয়: কেউই বর্তমান ফাইলটি ভাগ করে নেওয়ার বিষয়টি অস্বীকার করে
  • পড়ুন: পড়ুন ফাইল পড়ার জন্য খোলার অনুমতি দেয়।
  • রিড রাইট: রিড রাইট ফাইল পড়তে এবং লেখার জন্য ফাইলটি খোলার অনুমতি দেয়।
  • লিখুন: লেখার জন্য ফাইলটি খোলার অনুমতি দেয়।

ইভেন্টগুলি

একটি ইভেন্ট সাধারণত একটি ক্রিয়া হিসাবে পরিচিত যা ব্যবহারকারীর দ্বারা উত্পাদিত হয়। এটি মাউসের ক্লিক এবং এমনকি কীবোর্ড থেকে একক কীস্ট্রোক হতে পারে। একইভাবে, সি # প্রোগ্রামগুলিরও ইভেন্ট রয়েছে। ইভেন্ট জেনারেটর বলা হয় প্রকাশক এবং ইভেন্টটির গ্রহণকারীটিকে বলা হয় গ্রাহক

প্রকাশক

প্রতি প্রকাশক ইভেন্ট এবং প্রতিনিধি সংজ্ঞা রয়েছে। দ্য ইভেন্ট-প্রতিনিধি সংযুক্তি এই অবজেক্টে সংজ্ঞায়িত করা হয়। ক প্রকাশক শ্রেণীর অবজেক্ট ইভেন্টটিকে ডাকে এবং এটি অন্য অবজেক্টগুলিতে অবহিত হয়।

গ্রাহক

প্রতি গ্রাহক ইভেন্টটি গ্রহণ করে এবং একটি সরবরাহ করে অনুষ্ঠান পরিচালনাকারী. দ্য প্রতিনিধি প্রকাশক শ্রেণিতে পদ্ধতি / ইভেন্টের জন্য প্রার্থনা করে হ্যান্ডলার গ্রাহক শ্রেণীর।

উদাহরণ:

সিস্টেম নেমস্পেস এডুরেকা {পাবলিক ডেলিগেট স্ট্রিং ডেল (স্ট্রিং স্ট্র) ক্লাস ইভেন্টব্লক {ইভেন্ট ডেল নিউইভেন্ট পাবলিক ইভেন্টব্লক ()। এটি.নিউভেন্ট + = নতুন ডেল (এটি। ওয়েলকাম ব্যবহারকারী)} পাবলিক স্ট্রিং ওয়েলকাম ইউজার (স্ট্রিং ইউজারনেম) {ফিরে 'এডুরেকাতে স্বাগতম । '+ ব্যবহারকারীর নাম} স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) B ইভেন্টব্লক অবজেক্ট 1 = নতুন ইভেন্টব্লক () স্ট্রিং রেজাল্ট =জেজ 1. নিউইভেন্ট (' হ্যাপি লার্নিং ') কনসোল.উরাইটলাইন (ফলাফল)}}}

// আউটপুট:

এডুরেকা আপনাকে স্বাগতম। হ্যাপি লার্নিং

জেনারিক্স

জেনারিক্স স্থান ধারক সহ একটি শ্রেণীর সদস্য এবং পদ্ধতি প্রদানের একটি ধারণা রান-টাইম আমরা জেনারিক্স ব্যবহার করে সংজ্ঞায়িত করতে পারি বন্ধনী. আসুন নীচের উদাহরণগুলি দেখুন।

একটি ক্লাসে জেনারিক্স

সিস্টেমের নেমস্পেস এডুরেকা {শ্রেণীর জেনেরিক ক্লাস {পাবলিক জেনেরিকক্লাস (টি জিপি) ব্যবহার করে {কনসোল.উরাইটলাইন (msg)} ক্লাস প্রোগ্রাম {স্ট্যাটিক শূন্যস্থানীয় মেইন (স্ট্রিং [] আরগস) {জেনেরিক ক্লাস জেনারিক ক্লাসের (এই বার্তাটি জেনেরিক শ্রেণীর কাছ থেকে এসেছে) ) জেনেরিকক্লাস জেনিআই = নতুন জেনেরিকক্লাস (123) জেনেরিকক্লাস getCh = নতুন জেনেরিকক্লাস ('ই')}}}

// আউটপুট:

এই বার্তাটি জেনেরিক ক্লাসের
123
আইএস

একটি পদ্ধতিতে জেনেরিক্স

সিস্টেম নেমস্পেস এডুরেকা {শ্রেণীর জেনেরিক ক্লাস {পাবলিক শূন্য শো (টি চিত্র) ব্যবহার করে {কনসোল.উরাইটলাইন (চিত্র)}} বর্গ প্রোগ্রাম {স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {জেনেরিক ক্লাস জেনারিক = নতুন জেনেরিক ক্লাস () জেনিসি.শো ('এটি বার্তাটি জেনেরিক পদ্ধতি থেকে এসেছে)) জেনিসি S দেখান (321) জেনিসি h শো ('এইচ')}}}

// আউটপুট:

এই বার্তাটি জেনেরিক পদ্ধতি থেকে
321
এইচ

প্রতিনিধিরা

দ্য প্রতিনিধি পদ্ধতির রেফারেন্স হিসাবে কাজ করে। মূলত এটি একটি হিসাবে একই ফাংশন পয়েন্টার সি এবং সি ++ এ তবে আরও ভাল এবং টাইপ-নিরাপদ। ডেলিগেট ইন স্থির পদ্ধতি কেবল পদ্ধতিই encapsulates। প্রতিনিধি যখন দৃষ্টান্ত পদ্ধতি উভয় পদ্ধতি এবং উদাহরণকে encapsulates। প্রতিনিধিদের সেরা ব্যবহারটি হ'ল একটি হিসাবে ব্যবহার করা ইভেন্ট।

উদাহরণ:

সিস্টেম ডেলিগেট ইন্ট ক্যালকুলেটর (ইন্ট এন) পাবলিক ক্লাস এডুরেকা {স্ট্যাটিক ইনট নাম্বার = 25 পাবলিক স্ট্যাটিক ইন্ট অ্যাড (ইন্ট এন) {সংখ্যা = সংখ্যা + এন রিটার্ন নম্বর} পাবলিক স্ট্যাটিক ইন্ট মুল (ইনট এন) {সংখ্যা = সংখ্যা * এন রিটার্ন সংখ্যা} পাবলিক স্ট্যাটিক ইন্ট getNumber () {রিটার্ন নম্বর} পাবলিক স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) {ক্যালকুলেটর সি 1 = নতুন ক্যালকুলেটর (অ্যাড) ক্যালকুলেটর সি 2 = নতুন ক্যালকুলেটর (মুল) সি 1 (20) কনসোল.ব্রাইটলাইন ('ক্যালকুলেটর পরে এক প্রতিনিধি, নতুন নম্বরটি হ'ল: '+ getNumber ()) সি 2 (3) কনসোল.উরাইটলাইন (' ক্যালকুলেটারের পরে দুটি প্রতিনিধি, নতুন নম্বরটি হ'ল: '+ getNumber ())}}

// আউটপুট:

ক্যালকুলেটরের একজন প্রতিনিধি হওয়ার পরে, নতুন নম্বরটি হ'ল: 45
ক্যালকুলেটর দুটি প্রতিনিধি পরে, নতুন নম্বর: 135

প্রতিবিম্ব

রান-টাইমে মেটাডেটা পাওয়ার জন্য প্রতিবিম্বটি প্রয়োজন। রেফারেন্স পাওয়া যায় সিস্টেম.রিফ্লেশন নেমস্পেস এটি কার্যকর করতে নিম্নলিখিত ক্লাসগুলির প্রয়োজন।

  • প্রকার
  • মেম্বারআইএনফো
  • কনস্ট্রাক্টর ইনফো
  • মেথডইনফো
  • ফিল্ডইনফো
  • প্রপার্টিআইএনফো
  • টাইপআইএনফো
  • ইভেন্টআইএনফো
  • মডিউল
  • সমাবেশ
  • সমাবেশ নাম
  • পয়েন্টার

টাইপ ক্লাস

সি # টাইপ শ্রেণি শ্রেণীর প্রকার, ইন্টারফেসের ধরণ, গণনা প্রকার, অ্যারের প্রকার, মান প্রকারের জন্য প্রকারের ঘোষণার প্রতিনিধিত্ব করে

বৈশিষ্ট্য টাইপ করুন

ধরণের শ্রেণীর গুরুত্বপূর্ণ বৈশিষ্ট্যের একটি তালিকা নীচে উল্লেখ করা হয়েছে।

সম্পত্তি বর্ণনা
সমাবেশ এই ধরণের জন্য সমাবেশ হয়।
সমাবেশ এই ধরণের জন্য এসেম্বলির যোগ্য নাম পান।
বৈশিষ্ট্য প্রকারের সাথে যুক্ত বৈশিষ্ট্যগুলি পান G
বেসটাইপ বেস বা পিতামাতার প্রকার পায়।
পুরো নাম ধরণের সম্পূর্ণরূপে যোগ্যতাসম্পন্ন নাম পান।
ইসএবস্ট্র্যাক্ট টাইপটি অ্যাবস্ট্রাক্ট কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসআরে টাইপটি অ্যারে কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসক্লাস টাইপটি ক্লাস কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসেনাম টাইপটি এনুম কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
#Interface টাইপটি ইন্টারফেস কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসনেস্টেড প্রকারটি নেস্টেড কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসপ্রিমিটিভ টাইপটি আদিম কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসপয়েন্টার টাইপটি পয়েন্টার কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসনটপাবলিক প্রকারটি সর্বজনীন কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইস্পাবলিক প্রকারটি সর্বজনীন কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসলেড টাইপটি সিলযুক্ত কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
ইসিরিয়ালাইজেবল টাইপটি সিরিয়ালাইজেবল কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
সদস্যপ্রকার টাইপটি নেস্টার্ড টাইপের সদস্য টাইপ কিনা তা পরীক্ষা করতে ব্যবহৃত হয় to
মডিউল প্রকারের মডিউলটি পায়।
নাম প্রকারের নাম পান।
নেমস্পেস প্রকারের নামস্থানটি পায়।
সম্পত্তি বর্ণনা
গেটকন্সট্রাক্টর () প্রকারের জন্য সমস্ত পাবলিক কনস্ট্রাক্টরকে ফেরত দেয়।
গেটকন্সট্রাক্টর (বাইন্ডিং ফ্ল্যাগস) নির্দিষ্ট বাইন্ডিংফ্ল্যাগগুলি সহ প্রকারের জন্য সমস্ত কনস্ট্রাক্টরকে ফিরিয়ে দেয়।
গেটফিল্ডস () প্রকারের জন্য সমস্ত সর্বজনীন ক্ষেত্র ফেরত দেয়।
গেটফিল্ডস (বাইন্ডিংফ্ল্যাগস) নির্দিষ্ট বাইন্ডিংফ্ল্যাগগুলির সাথে প্রকারের জন্য সমস্ত পাবলিক কনস্ট্রাক্টরকে ফিরিয়ে দেয়।
গেটমেমবার্স () প্রকারের জন্য সমস্ত পাবলিক সদস্যকে ফেরত দেয়।
গেটমেমবার্স (বাইন্ডিংফ্ল্যাগস) নির্দিষ্ট বাইন্ডিংফ্ল্যাগ সহ প্রকারের জন্য সমস্ত সদস্যকে ফেরত দেয়।
গেটমেডস () প্রকারের জন্য সমস্ত পাবলিক পদ্ধতি ফেরত দেয়।
গেটমেডডস (বাইন্ডিংফ্লাগস) নির্দিষ্ট বাইন্ডিংফ্ল্যাগগুলি সহ ধরণের সমস্ত পদ্ধতি ফেরত দেয় Return
GetProperties () প্রকারের জন্য সমস্ত সর্বজনীন সম্পত্তি প্রদান করে।
GetProperties (বাইন্ডিংফ্ল্যাগস) নির্দিষ্ট বাইন্ডিংফ্ল্যাগগুলির সাথে প্রকারের জন্য সমস্ত সম্পত্তি ফেরত দেয়।
গেটটাইপ () বর্তমান টাইপ পায়।
গেটটাইপ (স্ট্রিং) প্রদত্ত নামের জন্য প্রকার পায়।

প্রতিবিম্ব উদাহরণ:

প্রকার পান

উদাহরণ:

সিস্টেম পাবলিক ক্লাস গেটটাইপ ব্যবহার করে {পাবলিক স্ট্যাটিক শূন্যস্থানীয় মেইন () a ইন্ট এ = 10 টাইপ টাইপ = এ.গেটটাইপ () কনসোল.উরাইটলাইন (টাইপ)}}

// আউটপুট:

System.Int32

সমাবেশ পান

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেমটি ব্যবহার করুন efনির্ধারণ পাবলিক ক্লাস গেটঅ্যাস্পব্ল্যাশন {পাবলিক স্ট্যাটিক অকার্যকর প্রধান () {টাইপ টি = টাইপফ (সিস্টেম.স্ট্রিং) কনসোল.উরাইটলাইন (t.As आशीर्वाद)}}

// আউটপুট:

System.Private.CoreLib, সংস্করণ = 4.0.0.0, সংস্কৃতি = নিরপেক্ষ, PublicKeyToken = 7cec85d7bea7798e

প্রিন্ট প্রকারের তথ্য

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেমটি ব্যবহার করুন efনির্ধারণ পাবলিক ক্লাস প্রিন্টটাইপ {পাবলিক স্ট্যাটিক শূন্যস্থানীয় মেইন () {টাইপ টি = টাইপফ (সিস্টেম.স্ট্রিং) কনসোল.উরাইটলাইন (t.FullName) কনসোল.উরাইটলাইন (t.BaseType) কনসোল.রাইটলাইন (t.IsClass) কনসোল.উরাইটলাইন (t.IsEnum) কনসোল.রাইটলাইন (t.IsInterface)}

// আউটপুট:

সত্য
মিথ্যা
মিথ্যা

প্রিন্ট কনস্ট্রাক্টর

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম ব্যবহার করুন .নির্ধারণ পাবলিক ক্লাস প্রিন্টকন্সট্রাক্টরগুলি {পাবলিক স্ট্যাটিক শূন্যস্থানীয় মেইন () {টাইপ টি = টাইপফ (সিস্টেম.স্ট্রিং) কনসোল.উরাইটলাইন ('{0} টাইপের কনস্ট্রাক্টর ...', টি) কনস্ট্রাক্টর ইনফো [] সিআই = টি .গেটকন্সট্রাক্টররা (বাইন্ডিংফ্লাগস.পাবলিক | বাইন্ডিংফ্ল্যাজস.ইনস্ট্যান্স) ফরচ (কন্সট্রাক্টরআইএনফো সি সি) so কনসোল.উরাইটলাইন (সি)}}

// আউটপুট:

সিস্টেম.স্ট্রিং প্রকারের নির্মাতারা ...
অকার্যকর .ctor (চর [])
অকার্যকর .ctor (চর [], ইন্টার 32, ইন্ট 32)
শূন্য .ctor (চর *)
অকার্যকর .ctor (চর *, ইন্ট 32, ইন্ট 32)
অকার্যকর .ctor (SByte *)
অকার্যকর .ctor (এসবিাইট *, ইন্ট 32, ইন্ট 32)
অকার্যকর .ctor (SByte *, Int32, Int32, System.Text.Encoding)
অকার্যকর .ctor (চর, আন্ত32)
অকার্যকর .ctor (System.ReadOnlySpan`1 [System.Char])

মুদ্রণ পদ্ধতি

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম ব্যবহার করুন .নির্ধারণ পাবলিক ক্লাসের মুদ্রণমাঠগুলি {পাবলিক স্ট্যাটিক শূন্যস্থানীয় প্রধান () {টাইপ টি = টাইপফ (সিস্টেম.স্ট্রিং) কনসোল.উরাইটলাইন ('{0} ধরণের পদ্ধতি ...', টি) মেথডইনফো [] সিআই = টি .GetMethods (বাইন্ডিংফ্লাগস.পাবলিক | বাইন্ডিংফ্ল্যাজস.ইনস্ট্যান্স) পূর্বাভাস (পদ্ধতিতে পদ্ধতি মেথডিনফো) so কনসোল.উরাইটলাইন (এম)}}}

// আউটপুট:

সিস্টেম. স্ট্রিংয়ের পদ্ধতি ...
System.String প্রতিস্থাপন (System.String, System.String)
সিস্টেম.স্ট্রিং [] বিভক্ত (চর, সিস্টেম.স্ট্রিংস্প্লিটঅ্যাপশন)
সিস্টেম.স্ট্রিং [] স্প্লিট (চর, ইনট 32, সিস্টেম.স্ট্রিংস্প্লিটঅ্যাপশনস)
সিস্টেম। স্ট্রিং [] বিভক্ত (চর [])
সিস্টেম। স্ট্রিং [] স্প্লিট (চর [], ইন 32)
System.String [] বিভক্ত (চর [], System.StringSplitOptions)
সিস্টেম.স্ট্রিং [] স্প্লিট (চর [], ইনট 32, সিস্টেম.স্ট্রিংস্প্লিটঅ্যাপশনস)
System.String [] স্প্লিট (System.String, System.StringSplitOptions)
System.String [] বিভক্ত (System.String, Int32, System.StringSplitOptions)
System.String [] বিভক্ত (System.String [], System.StringSplitOptions)
System.String [] বিভক্ত (System.String [], Int32, System.StringSplitOptions) ......

মুদ্রণ ক্ষেত্রসমূহ

উদাহরণ:

সিস্টেম ব্যবহার করে সিস্টেম ব্যবহার করুন.নির্ধারণ পাবলিক ক্লাস প্রিন্টফিল্ডস {পাবলিক স্ট্যাটিক অকার্যকর মেইন () {টাইপ টি = টাইপফ (সিস্টেম.স্ট্রিং) কনসোল.উরাইটলাইন ('{0} প্রকারের ক্ষেত্র ...', টি) ফিল্ডআইএনফো [] সিআই = টি .গেটফিল্ডস (বাইন্ডিংফ্ল্যাজস.প্রজাতন্ত্র | বাইন্ডিংফ্ল্যাজস.স্ট্যাটিক | বাইন্ডিংফ্ল্যাজস.নোনপাবলিক) পূর্বাভাস (সিডিতে ফিল্ডইনফোর চ) so কনসোল.উরাইটলাইন (চ)}}}

// আউটপুট:

সিস্টেমের ক্ষেত্রগুলি ring স্ট্রিং টাইপ ...
সিস্টেম। স্ট্রিং খালি

এখন আসুন আমরা কয়েকটি উন্নত সি # প্রোগ্রামিং ধারণার দিকে এগিয়ে যাই

উন্নত সি # ধারণা

বেনামে ফাংশন

যে ফাংশনটিতে একটি নির্দিষ্ট নাম নেই তাকে বলা হয় নামবিহীন কার্যাদি। সি # তে দুটি ধরণের নামবিহীন কার্যাদি উপলব্ধ

  • লাম্বদা এক্সপ্রেশন
  • নামবিহীন পদ্ধতি

উদাহরণ:

সিস্টেমের নেমস্পেস ল্যাম্বডএ এক্সপ্রেসনগুলি {শ্রেণির এডুরেকা {প্রতিনিধি ইন্ট স্কয়ার (ইনট নাম্বার) স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরগস) {স্কয়ার গেটস্কয়ার = x => এক্স * এক্স ইন জে = গেটস্কয়ার (25) কনসোল.উইরটলাইন ('স্কোয়ার:' +) j)}}}

// আউটপুট:

স্কোয়ার: 625

নামবিহীন পদ্ধতি

দ্য বেনামে পদ্ধতি একটি হিসাবে একই কার্যকারিতা সরবরাহ করে ল্যাম্বদা এক্সপ্রেশন, তা ছাড়া এটি আমাদের প্যারামিটার তালিকাটিকে উপেক্ষা করতে দেয়।

উদাহরণ:

সিস্টেম নেমস্পেস ব্যবহার করে বেনামে মেথডস {শ্রেণি প্রোগ্রাম {পাবলিক ডেলিগেট শূন্য অ্যানোনিমাসফুন () স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরগস) {বেনামেফুন ফান = ডেলিগেট () so কনসোল.উরাইটলাইন ('এটি বেনামে ফাংশন')} মজা ()}}}}

// আউটপুট:

এটি বেনামে ফাংশন

মাল্টি-থ্রেডিং

মাল্টিথ্রেডিং এমন একটি প্রক্রিয়া যেখানে একাধিক থ্রেড তৈরি করা হয় এবং বিভিন্ন কাজের জন্য নির্ধারিত হয়। এটি একবারে একাধিক কাজ সম্পাদন করে সময় সাশ্রয় করে। মাল্টিথ্রেডিং ক্লাসটি উপলব্ধ সিস্টেম.ট্রেডিং নেমস্পেস

সিস্টেম.প্রেম নামকরণ

দ্য সিস্টেম.ট্রেডিং নেমস্পেসে মাল্টিথ্রেডিংয়ের সুবিধার্থে ক্লাস এবং ইন্টারফেস রয়েছে। এটি থ্রেড রিসোর্স সিঙ্ক্রোনাইজ করার জন্য ক্লাস সরবরাহ করে। সাধারণভাবে ব্যবহৃত ক্লাসগুলির একটি তালিকা নীচে দেওয়া হল:

  • থ্রেড
  • মিটেক্স
  • টাইমার
  • নিরীক্ষণ
  • সেমফোর
  • থ্রেডলোকাল
  • থ্রেডপুল
  • অস্থির

প্রক্রিয়া এবং থ্রেড

প্রক্রিয়াটি আসলে এবং প্রয়োগ এবং এটি একটি হিসাবে বিবেচিত হয় ভারী ওজন উপাদান. অন্যদিকে, থ্রেডটি একক মডিউল পুরো প্রয়োগের। এটা হালকা ওজন প্রক্রিয়া তুলনায়

লাইফ সাইকেল অফ থ্রেড

প্রতিটি থ্রেড একটি জীবন চক্র আছে। থ্রেডের লাইফ চক্রটি System.Threading.Thread শ্রেণিতে সংজ্ঞায়িত করা হয়েছে। নিম্নলিখিত যে কোনও থ্রেডের জীবনচক্রের পর্যায়গুলি রয়েছে।

  • স্টার্ট না করা
  • চলমান (চালানোর জন্য প্রস্তুত)
  • চলছে
  • চলমান নয়
  • মৃত

থ্রেড ক্লাস নীচের হিসাবে নিম্নলিখিত বৈশিষ্ট্য এবং পদ্ধতি সরবরাহ করে।

থ্রেড বৈশিষ্ট্য

সম্পত্তি বর্ণনা
কারেন্টথ্রেড বর্তমানে চলমান থ্রেডের উদাহরণটি প্রদান করে।
জীবিত বর্তমান থ্রেডটি বেঁচে আছে কি না তা পরীক্ষা করে।
ইসব্যাকগ্রাউন্ড বর্তমান থ্রেডের মান / সেট করতে পটভূমিতে আছে বা নেই।
পরিচালিত থ্রেডআইডি d বর্তমানে পরিচালিত থ্রেডের জন্য অনন্য আইডি পেতে ব্যবহৃত হয়।
নাম বর্তমান থ্রেডটির নাম পেতে বা সেট করতে ব্যবহৃত হয়।
অগ্রাধিকার বর্তমান থ্রেডটির অগ্রাধিকার পেতে বা সেট করতে ব্যবহৃত হয়।
থ্রেডস্টেট থ্রেড রাষ্ট্রের প্রতিনিধিত্ব করে এমন একটি মান ফেরত দিতে ব্যবহৃত হয়।

থ্রেড পদ্ধতি

পদ্ধতি বর্ণনা
গর্ভপাত() থ্রেডটি শেষ করতে ব্যবহৃত হয়। এটি থ্রেডঅবর্টেক্সেপশন উত্থাপন করে।
বাধা () একটি থ্রেড বাধাগ্রস্ত করতে ব্যবহৃত হয় যা ওয়েটস্লিপজয়ন অবস্থায় রয়েছে।
যোগদান () এই থ্রেডটি শেষ না হওয়া অবধি সমস্ত কলিং থ্রেডগুলি অবরুদ্ধ করতে ব্যবহৃত হয়।
রিসেটআবার্ট () বর্তমান থ্রেডের জন্য বাতিল করা অনুরোধ বাতিল করতে ব্যবহৃত হয়।
জীবনবৃত্তান্ত() স্থগিত থ্রেড পুনরায় শুরু করতে ব্যবহৃত হয়। এটি অচল।
ঘুম (ইন্ট 32) নির্দিষ্ট মিলিসেকেন্ডের জন্য বর্তমান থ্রেড স্থগিত করতে ব্যবহৃত হয়।
শুরু () থ্রেডের বর্তমান অবস্থাকে রান্নেবলে পরিবর্তন করে।
স্থগিত () বর্তমান থ্রেড স্থগিত করে যদি এটি স্থগিত না করা হয়। এটি অচল।
ফলন () অন্য থ্রেডে বর্তমান থ্রেডের সম্পাদন করতে ব্যবহৃত হয়।

মূল থ্রেড উদাহরণ

সিস্টেম ব্যবহার করে সিস্টেম ব্যবহার করুন। পাবলিক ক্লাস এ্যাডুরেকা h পাবলিক স্ট্যাটিক শূন্যপদ মেইন (স্ট্রিং [] আর্টস) {থ্রেড টি = থ্রেড.কন্ট্রেন্টথ্রেড t.Name = 'মেইনথ্রেড' কনসোল.ওয়ারাইটলাইন (t.Name)} read

// আউটপুট:

প্রধান থ্রেড

ব্যতিক্রম হ্যান্ডলিং

দ্য ব্যতিক্রম প্রোগ্রামটি রান-টাইমে ফেলে দেওয়া একটি ত্রুটি। আমাদের প্রোগ্রামটি ব্যতিক্রম মুক্ত করতে আমরা ব্যতিক্রম-হ্যান্ডলিং সম্পাদন করি।

ব্যতিক্রম বর্ণনা
System.DivideByZeroException শূন্য দিয়ে একটি সংখ্যা ভাগ করে ত্রুটি উত্পন্ন হয়েছে।
System.NullReferencesException নাল বস্তুটি উল্লেখ করে উত্পন্ন ত্রুটি পরিচালনা করে।
System.In अवैधCastException অবৈধ টাইপকাস্টিং দ্বারা উত্পন্ন ত্রুটি পরিচালনা করে।
System.IO.IOException ইনপুট / আউটপুট ত্রুটিগুলি পরিচালনা করে।
সিস্টেম.ফিল্ডএ্যাকসেসেপশন অবৈধ ব্যক্তিগত / সুরক্ষিত অ্যাক্সেস দ্বারা ত্রুটি উত্পন্ন হয়েছে।

সি # তে, আমরা সম্পাদনা করতে 4 টি কীওয়ার্ড ব্যবহার করি ব্যতিক্রম হ্যান্ডলিং:

  • চেষ্টা করুন
  • ধরা
  • অবশেষে, এবং
  • নিক্ষেপ
উদাহরণ:
সিস্টেম পাবলিক ক্লাস EdurekExample ample পাবলিক স্ট্যাটিক অকার্যকর মেইন (স্ট্রিং [] আরগস) ব্যবহার করে {চেষ্টা করুন {int a = 10 ইন্ট বি = 0 ইন্ট x = a / বি} ক্যাচ (ব্যতিক্রম ই) so কনসোল.উরাইটলাইন (ই) so কনসোল.উইরাইটলাইন ('এই বার্তাটি ক্যাপ ব্লক থেকে এসেছে')}}

// আউটপুট:

System.DivideByZeroException: শূন্য দ্বারা ভাগ করার চেষ্টা করা হয়েছে।
ExExaEdurekample.F এ মেইন (স্ট্রিং [] আরগস) এ সি: সি # টিউটোরিয়ালসি # প্রোগ্রামসনসোল অ্যাপ 1 কনসোল অ্যাপ 1 প্রোগ্রাম সিআর: লাইন 10
এই বার্তাটি ক্যাপ ব্লক থেকে এসেছে

কাস্টমাইজড ব্যতিক্রম উদাহরণ

সিস্টেম পাবলিক ক্লাস অবৈধএজএক্সেপশন: ব্যতিক্রম {পাবলিক অবৈধএজএক্সসেপশন (স্ট্রিং মেসেজ): বেস (বার্তা)}}} পাবলিক ক্লাস কাস্টমাইজড {স্ট্যাটিক শূন্য বৈধতা (পূর্ববর্তী বয়স) {যদি (বয়স<18) { throw new InvalidAgeException('Sorry, Age is expected to be greater than 18') } } public static void Main(string[] args) { try { validate(12) } catch (InvalidAgeException e) { Console.WriteLine(e) } Console.WriteLine('Catch block is being executed now.') } } 

// আউটপুট:

অবৈধ বয়সসত্তা: দুঃখিত, বয়স 18 বছরের বেশি হওয়ার আশা করা হচ্ছে
এফ: সি: টিউটোরিয়ালসি # প্রোগ্রামস কনসোল অ্যাপ 1 কনসোল অ্যাপ 1 প্রোগ্রাম সিআর: লাইন 18
এফ: সি # টিউটোরিয়ালসি # প্রোগ্রামস কনসোল অ্যাপ 1 কনসোল অ্যাপ 1 প্রোগ্রামগ্রাম.সি: লাইন 23 তে কাস্টমাইজড.মেন (স্ট্রিং [] আরগস) এ
ক্যাচ ব্লক এখন কার্যকর করা হচ্ছে।

অবশেষে ব্লক উদাহরণ

সিস্টেম পাবলিক ক্লাস ফাইনাল এক্সেক্সপশন {সার্বজনীন স্ট্যাটিক শূন্যপদ মেইন (স্ট্রিং [] আরগস) ব্যবহার করে {চেষ্টা করুন {int a = 10 ইন্ট বি = 0 ইনটি এক্স = আ / বি} ক্যাচ (ব্যতিক্রম ই) so কনসোল.উরাইটলাইন (ই)} অবশেষে so কনসোল .উরাইটলাইন ('অবশেষে ব্লকটি কার্যকর করা হয়')} কনসোল.উরাইটলাইন ('ক্যাচ ব্লক কার্যকর করা হয়')}}

// আউটপুট:

System.DivideByZeroException: শূন্য দ্বারা ভাগ করার চেষ্টা করা হয়েছে।
এফ এ সি: টিউটোরিয়ালসি # প্রোগ্রামস কনসোল অ্যাপ 1 কনসোল অ্যাপ 1 প্রোগ্রাম সিআর: লাইন 10
অবশেষে ব্লক কার্যকর করা হয়
ক্যাচ ব্লক কার্যকর করা হয়

সিস্টেম ব্যতিক্রম স্বাক্ষর

[সিরিয়ালাইজএট্রিবিউট] [ComVisibleAttribute (সত্য)] পাবলিক ক্লাস সিস্টেমএক্সেপশন: ব্যতিক্রম

সিস্টেম ব্যতিক্রম কনস্ট্রাক্টর

নির্মাতা বর্ণনা
সিস্টেমএক্সেপশন () এটি সিস্টেমএক্সেপশন শ্রেণীর একটি নতুন উদাহরণ শুরু করতে ব্যবহৃত হয়।
সিস্টেমএক্সেপশন

(সিরিয়ালাইজেশন ইনফো, স্ট্রিমিংকন্টেক্সট)

এটি সিরিয়ালযুক্ত ডেটা সহ সিস্টেমএক্সেপশন শ্রেণীর একটি নতুন উদাহরণ শুরু করার জন্য ব্যবহৃত হয়।
সিস্টেমএক্সেপশন (স্ট্রিং) এটি নির্দিষ্ট ত্রুটি বার্তা সহ সিস্টেমএক্সেপশন শ্রেণীর একটি নতুন উদাহরণ শুরু করতে ব্যবহৃত হয়।
সিস্টেমএক্সেপশন (স্ট্রিং, ব্যতিক্রম) এটি একটি নির্দিষ্ট ত্রুটি বার্তা এবং সিস্টেম ব্যতিক্রমের অভ্যন্তরীণ ব্যতিক্রম একটি রেফারেন্স সহ সিস্টেমএক্সেপশন ক্লাসের একটি নতুন উদাহরণ শুরু করার জন্য ব্যবহৃত হয় যা এই ব্যতিক্রমের কারণ।

সিস্টেম ব্যতিক্রম বৈশিষ্ট্য

সম্পত্তি বর্ণনা
ডেটা এটি কী / মান সংযোজনগুলির সংগ্রহ সংগ্রহ করতে ব্যবহৃত হয় যা ব্যতিক্রম সম্পর্কে অতিরিক্ত ব্যবহারকারী-সংজ্ঞায়িত তথ্য সরবরাহ করে।
হেল্প লিঙ্ক এটি এই ব্যতিক্রমের সাথে সম্পর্কিত সহায়তা ফাইলটিতে একটি লিঙ্ক পেতে বা সেট করতে ব্যবহৃত হয়।
এইচআরসাল্ট এটি এইচআরআইসিএলটি পেতে বা সেট করতে ব্যবহৃত হয়, একটি কোডযুক্ত সংখ্যাসূচক মান যা একটি নির্দিষ্ট ব্যতিক্রম নির্ধারিত হয়।
অভ্যন্তরীণ ধারণা এটি ব্যতিক্রম উদাহরণ পেতে ব্যবহৃত হয় যা বর্তমান ব্যতিক্রম ঘটায়।
বার্তা এটি একটি বার্তা পেতে ব্যবহৃত হয় যা বর্তমান ব্যতিক্রম বর্ণনা করে।
উৎস এটি অ্যাপ্লিকেশনটির নাম পেতে বা সেট করতে ব্যবহৃত হয় যা ত্রুটির কারণ হয়।
স্ট্যাকট্রেস এটি কল স্ট্যাকের তাত্ক্ষণিক ফ্রেমের স্ট্রিং উপস্থাপনা পেতে ব্যবহৃত হয়।
টার্গেটসাইট এটি বর্তমান ব্যতিক্রম ছুঁড়ে ফেলা পদ্ধতিটি ব্যবহার করতে ব্যবহৃত হয়।

সিস্টেম ব্যতিক্রম পদ্ধতি

পদ্ধতি বর্ণনা
সমান (অবজেক্ট) এটি নির্দিষ্ট করা অবজেক্টটি বর্তমান অবজেক্টের সমান কিনা তা পরীক্ষা করতে ব্যবহৃত হয়।
চূড়ান্ত করুন () এটি রিসোর্সগুলি ফ্রি করতে এবং ক্লিনআপ অপারেশন করতে ব্যবহৃত হয়।
গেটবেস এক্সসেপশন () এটি রুট ব্যতিক্রম পেতে ব্যবহৃত হয়।
গেটহ্যাশকোড () এটি হ্যাশ কোড পেতে ব্যবহৃত হয়।
গেটোবজেক্টডাটা

(সিরিয়ালাইজেশন ইনফো, স্ট্রিমিংকন্টেক্সট)

এটি অবজেক্টের ডেটা পেতে ব্যবহৃত হয়।
গেটটাইপ () এটি বর্তমান সময়ের রানটাইম টাইপ পেতে ব্যবহৃত হয়।
সদস্যপদে ক্লোন () এটি বর্তমান অবজেক্টের অগভীর অনুলিপি তৈরি করতে ব্যবহৃত হয়।
স্ট্রিং() এটি বর্তমান ব্যতিক্রমের একটি স্ট্রিং উপস্থাপনা তৈরি করতে এবং ফেরত দিতে ব্যবহৃত হয়।

সিস্টেম ব্যতিক্রম উদাহরণ

সিস্টেমের নেমস্পেস সিএসআরপিপ্রগ্রাম {শ্রেণি সিস্টেমএক্সেপশনএক্সেমেল {স্ট্যাটিক শূন্যস্থান মেইন (স্ট্রিং [] আরোগুলি) {চেষ্টা করুন {ইন্ট [] আরআর = নতুন ইনট [5] আরার [10] = 25} ক্যাচ (সিস্টেমএক্সেপশন ই) so কনসোল.ব্রাইটলাইন (ই)} }}}

// আউটপুট:

System.IndexOutOfRangeException: সূচি অ্যারের সীমানার বাইরে ছিল।
সিএসআরপিপ্রগ্রাম.সিস্টেম এক্সেপশনএকটি নমুনা.এফ এ মেইন (স্ট্রিং [] আরগস): সি # টিউটোরিয়ালসি # প্রোগ্রামস কনসোল অ্যাপ 1 কনসোল অ্যাপ1 প্রোগ্রাম সিআর: লাইন 11

সিঙ্ক্রোনাইজেশন

সিঙ্ক্রোনাইজেশন এমন একটি কৌশল হতে পারে যা নির্দিষ্ট সময়ের জন্য সংস্থানটি অ্যাক্সেস করতে কেবল 1 টি থ্রেডকে সক্ষম করে। যতক্ষণ না নির্ধারিত থ্রেডটি এর কাজ শেষ না করে ততক্ষণ কোনও বিকল্প থ্রেড বিঘ্নিত হবে না।

মাল্টিথ্রেডিং প্রোগ্রামে, থ্রেডগুলি অনুমোদিতজন্য কোনও সংস্থান অ্যাক্সেসনির্দিষ্ট নির্বাহসময় থ্রেডগুলি রিসোর্সগুলি ভাগ করে এবং অ্যাসিঙ্ক্রোনালি কার্যকর করে। ভাগ করা সংস্থানসমূহ (ডেটা) অ্যাক্সেস করাএকটি গুরুত্বপূর্ণ কাজ হতে পারেযে সাধারণতথামতে পারেপদ্ধতি.আমাদের এটিকে প্রভাবিত করার প্রবণতা রয়েছেসিঙ্ক্রোনাস পদ্ধতিতে থ্রেড তৈরি করে

সিঙ্ক্রোনাইজেশন ছাড়াই উদাহরণ

সিস্টেম ব্যবহার করে সিস্টেম.ত্রে ছড়িয়ে পড়া ক্লাস এডুরেকা {পাবলিক শূন্য প্রিন্ট টেবিল () {এর জন্য (আইটি আই = 1 আই)<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } } 

// আউটপুট:

এক
এক










7
7
8
8
9
9
10
10

সিঙ্ক্রোনাইজেশন সহ উদাহরণ

সিস্টেম ব্যবহার করে সিস্টেম ব্যবহার করা। এডুরেকা শ্রেণিবদ্ধকরণ {পাবলিক শূন্য প্রিন্ট টেবিল () {লক (এটি) {এর জন্য (int i = 1 i<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } } 

// আউটপুট:

এক





7
8
9
10
এক





7
8
9
10

নতুন বৈশিষ্ট

মাইক্রোসফ্ট সি # ভাষায় অনেক সর্বশেষ বৈশিষ্ট্য যুক্ত করেছে যার কয়েকটি নীচে উল্লেখ করা হয়েছে।

সি # 6.0

  • স্থির নির্দেশিকা ব্যবহার করা
  • ব্যতিক্রম ফিল্টার
  • ক্যাচ / অবশেষে অবরুদ্ধ হওয়ার অপেক্ষায়
  • অটো সম্পত্তি আরম্ভকারী
  • কেবলমাত্র গেটর বৈশিষ্ট্যের জন্য ডিফল্ট মান
  • এক্সপ্রেশন-দেহী সদস্যগণ
  • নাল প্রচারক
  • স্ট্রিং বিরতি
  • নাম অপারেটর
  • অভিধান সূচনা
  • সংকলক হিসাবে একটি পরিষেবা (রোজলিন)

সি # 7.0

  • প্যাটার্ন ম্যাচিং
  • টিপলস
  • ডেকনস্ট্রাকশন
  • স্থানীয় ফাংশন
  • অঙ্ক বিভাজক
  • বাইনারি আক্ষরিক
  • রেফারেন্স এবং স্থানীয়রা
  • এক্সপ্রেশন শরীরে নির্মাতা এবং চূড়ান্তকারী
  • অভিব্যক্তিটি দেহ প্রাপ্তকারী এবং সেটারকে দেবে
  • আউট ভেরিয়েবল
  • সাধারণ async রিটার্ন প্রকার

সি # 7.1

  • অ্যাসিঙ্ক মেইন
  • ডিফল্ট এক্সপ্রেশন

সি # এর উপর ভিত্তি করে সাক্ষাত্কারের প্রশ্নসমূহ

সি # প্রোগ্রামিং ভাষার উপর ভিত্তি করে গুরুত্বপূর্ণ সাক্ষাত্কারের প্রশ্নগুলি এই আপডেটে পাওয়া যাবে ।

এটির সাহায্যে আমরা এই 'সি # টিউটোরিয়াল' নিবন্ধটির শেষে এসেছি। আমি আশা করি আপনি ডেটা স্ট্রাকচার, সিনট্যাক্স, কার্যকারিতা এবং সেগুলি দ্বারা সম্পাদিত ক্রিয়াকলাপগুলির গুরুত্ব বুঝতে পেরেছেন। এখন আপনি এর মাধ্যমে সি # তে প্রোগ্রামিংয়ের প্রাথমিক বিষয়গুলি বুঝতে পেরেছেনসি # টিউটোরিয়াল, দেখুন প্রশিক্ষণ প্রদান এ্যাডুরেকা দ্বারা জাভা এর মত অনেক প্রযুক্তিতে বসন্ত এবং অনেকআরও, বিশ্বজুড়ে ছড়িয়ে থাকা 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা একটি পেয়েছে আমাদের জন্য প্রশ্ন? এই 'সি # টিউটোরিয়াল' ব্লগের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।