C ( সি সার্প) প্রোগ্রামিং ভাষা
https://www.sattacademy.com/csharp/
সি#(“সি সার্প” উচ্চারিত হয়) একটি সহজ, আধুনিক, অবজেক্ট-অরিয়েন্টেড এবং টাইপ-নিরাপদ(type-safe) প্রোগ্রামিং ভাষা। সি এবং সি++ প্রোগ্রামিং থেকে মূলত সি# প্রোগ্রামিং ভাষার উৎপত্তি। এছাড়া সি, সি++, জাভা এবং জাভাস্ক্রিপ্ট এর পরেই এটি বেশ পরিচিত ভাষা।
বিভিন্ন ধরণের এপ্লিকেশন নির্মাণের জন্য C# কে ডিজাইন করা হয়েছে এবং যা .NET ফ্রেমওয়ার্কের উপর রান হয়।
C# একটি অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং ভাষা। যাইহোক, C# কম্পোনেন্ট-অরিয়েন্টেড প্রোগ্রামিংও সমর্থন করে। সমসাময়িক সফটওয়্যার ডিজাইন ক্রমবর্ধমানভাবে স্বতঃপ্রযুক্ত(self-contained) এবং স্ব-কার্যকারিতা(self-describing) প্যাকেজের সমন্বয়ে গঠিত সফটওয়্যার কম্পোনেন্ট(components) এর উপর নির্ভর করে।
আর এ কম্পোনেন্টগুলো প্রোপার্টি, মেথড এবং ইভেন্ট এর সমন্বয়ে একটি প্রোগ্রামিং মডেল তৈরি করে। এই কম্পোনেন্টগুলোর নিজস্ব কিছু বৈশিষ্ট্য(attributes) থাকে যেগুলো কম্পোনেন্ট সম্পর্কে ঘোষণামূলক তথ্য প্রদান করে এবং এই কম্পোনেন্টগুলো তাদের নিজস্ব ডকুমেন্টেশন অন্তর্ভুক্ত করে।
কম্পোনেন্টের এই ধারণাকে সরাসরি সমর্থন করার জন্য সি# ভাষা গঠন সরবরাহ করে। এছাড়া সফটওয়্যার সামগ্রি(component) তৈরি এবং ব্যবহার করার জন্য C# কে খুবই সহজ করে তৈরি করা হয়েছে।
C# এর কিছু উপাদান বা বৈশিষ্ট্য দৃঢ় এবং টেকসই এপ্লিকেশন নির্মাণে সহযোগীতা করে। যেমনঃ
Garbage collection: স্বয়ংক্রিয়ভাবে অনধিগম্য এবং অব্যবহৃত অবজেক্ট দ্বারা দখলকৃত মেমরি পুনরুদ্ধার(reclaim) করে।
exception handling: ত্রুটি সনাক্তকরণ এবং পুনরুদ্ধারের জন্য একটি সুসংহত এবং সম্প্রসারণযোগ্য (structured and extensible) পদ্ধতি সরবরাহ করে।
type-safe: ভাষাটির টাইপ-সেফ ডিজাইন অনির্দিষ্ট ভ্যারিয়েবল থেকে পাঠ, array কে তার সীমানার বাইরে থেকে ইন্ডেক্স, অথবা অনির্ধারিত টাইপ কাস্ট(type cast) সম্পাদন অসম্ভব করে তুলে।
C# এর রয়েছে একটি ইউনিফাইড টাইপ সিস্টেম(unified type system)। যার কারণে প্রিমিটিভ(primitive ) টাইপ(যেমন- int এবং double) সহ সমস্ত C# টাইপ একটি মূল object টাইপ এর উত্তরাধিকারী।
সুতরাং সকল টাইপ এক সেট সাধারণ অপারেশন সরবরাহ করে এবং যেকোন টাইপের মান(value) একটি সুসংগত পদ্ধতিতে সংরক্ষণ, পরিবহন, এবং পরিচালিত হতে পারে। অধিকন্তু, C# ব্যবহারকারী কর্তৃক সংজ্ঞায়িত রেফারেন্স এবং ভ্যালু টাইপ উভয়ই সমর্থন এর মাধ্যমে অবজেক্টকে ডাইনামিকভাবে বরাদ্দ করার সম্মতি দেয়।
C# প্রোগ্রাম এবং লাইব্রেরী সময়ের সাথে সাথে যেন সামঞ্জস্যপূর্ণভাবে বিবর্তিত হতে পারে তা নিশ্চিত করতে C# এর নকশাতে সংস্করণের উপর ব্যপক গুরুত্ব দেওয়া হয়েছে।
অনেক প্রোগ্রামিং ল্যাংগুয়েজ এই সমস্যাটির দিকে খুব সামান্য মনোযোগ দেয়। ফলস্বরূপঃ নির্ভরশীল লাইব্রেরিগুলোর নতুন সংস্করণ চালু হওয়ার সাথে সাথে ঐসব প্রোগ্রামিং ল্যাংগুয়েজ দ্বারা লিখিত প্রোগ্রামগুলি প্রয়োজনের তুলনায় বেশি ভেঙ্গে যায়।
কিন্তু C# এর ডিজাইন সংস্করণের উপর ভিত্তি করে সরাসরি প্রভাবিত হয় যা আলাদা virtual এবং override মডিফায়ার, method overload resolution এর নীতি এবং explicit interface member declaration এর সাপোর্ট অন্তর্ভুক্ত করে।
টিউটোরিয়াল লিংকঃ
https://www.sattacademy.com/csharp/