ডিকোরিটিজ (সি # বা অন্যথায়) কেবল এমন একটি ধারক যেখানে আপনি কোনও কী এর উপর ভিত্তি করে কোনও মান সন্ধান করেন। বেশ কয়েকটি ভাষায় এটি হ্যাশম্যাপ হিসাবে সবচেয়ে সাধারণ বাস্তবায়নের সাথে মানচিত্র হিসাবে আরও সঠিকভাবে চিহ্নিত।
কী বিবেচনা করতে সমস্যাটি হ'ল কী কী উপস্থিত না থাকলে ঘটে। কিছু ভাষা ফিরে null
বা nil
অন্য কিছু সমতুল্য মান দ্বারা আচরণ করে । নিঃশব্দে কোনও মানের অস্তিত্ব নেই আপনাকে অবহিত করার পরিবর্তে একটি মানকে ডিফল্ট করা।
আরও ভাল বা আরও খারাপের জন্য, সি # লাইব্রেরি ডিজাইনাররা আচরণটি মোকাবেলা করার জন্য একটি প্রতিমা নিয়ে এসেছিলেন। তারা যুক্তি দিয়েছিল যে যে মান নেই তার সন্ধানের জন্য ডিফল্ট আচরণটি একটি ব্যতিক্রম ছোঁড়া। আপনি যদি ব্যতিক্রম এড়াতে চান, তবে আপনি Try
বৈকল্পটি ব্যবহার করতে পারেন । এটি একই দৃষ্টিভঙ্গি যা তারা পূর্ণসংখ্যা বা তারিখ / সময় অবজেক্টগুলিতে স্ট্রিংগুলি পার্স করার জন্য ব্যবহার করে। মূলত, প্রভাবটি এরকম:
T count = int.Parse("12T45"); // throws exception
if (int.TryParse("12T45", out count))
{
// Does not throw exception
}
এবং এটি অভিধানে এগিয়ে গেছে, যার সূচকটি প্রতিনিধিদের Get(index)
:
var myvalue = dict["12345"]; // throws exception
myvalue = dict.Get("12345"); // throws exception
if (dict.TryGet("12345", out myvalue))
{
// Does not throw exception
}
এইভাবেই ভাষাটি ডিজাইন করা হয়েছে।
করা উচিত out
ভেরিয়েবল নিরুৎসাহিত হবে?
সি # এগুলির প্রথম ভাষা নয় এবং নির্দিষ্ট পরিস্থিতিতে তাদের উদ্দেশ্য রয়েছে। আপনি যদি একটি অত্যন্ত সমবর্তী সিস্টেম তৈরির চেষ্টা করছেন তবে আপনি out
একযোগে সীমাতে ভেরিয়েবল ব্যবহার করতে পারবেন না ।
বিভিন্ন উপায়ে, যদি ভাষা এবং কোর গ্রন্থাগার সরবরাহকারীদের দ্বারা প্রচ্ছন্ন একটি আইডিয়াম থাকে তবে আমি আমার আইপিআইগুলিতে সেই প্রতিমাগুলি গ্রহণ করার চেষ্টা করি। এটি এপিআইকে আরও সামঞ্জস্যপূর্ণ এবং ঘরে বসে ভাষা অনুভব করে। সুতরাং রুবিতে রচিত কোনও পদ্ধতি সি #, সি বা পাইথনে লিখিত পদ্ধতির মতো দেখাচ্ছে না। তাদের প্রত্যেকের বিল্ডিং কোডের একটি পছন্দের পদ্ধতি রয়েছে এবং এটির সাথে কাজ করা আপনার API এর ব্যবহারকারীদের এটি আরও দ্রুত শিখতে সহায়তা করে।
সাধারণভাবে মানচিত্রগুলি কি একটি অ্যান্টি-প্যাটার্ন?
তাদের উদ্দেশ্য রয়েছে তবে অনেক সময় তারা আপনার উদ্দেশ্যটির জন্য ভুল সমাধান হতে পারে। বিশেষত যদি আপনার দ্বি-দিকনির্দেশক ম্যাপিং প্রয়োজন হয়। অনেকগুলি ধারক এবং ডেটা সংগঠিত করার পদ্ধতি রয়েছে। আপনি ব্যবহার করতে পারেন এমন অনেকগুলি পন্থা রয়েছে এবং কখনও কখনও সেই ধারকটি তোলার আগে আপনাকে কিছুটা চিন্তা করা দরকার।
আপনার যদি দ্বি-দিকীয় ম্যাপিং মানগুলির খুব সংক্ষিপ্ত তালিকা থাকে তবে আপনার কেবলমাত্র টিউপসগুলির একটি তালিকা প্রয়োজন। বা স্ট্রাক্টগুলির একটি তালিকা, যেখানে আপনি ম্যাপিংয়ের উভয় পাশে প্রথম ম্যাচটি সহজেই খুঁজে পেতে পারেন।
সমস্যার ডোমেনটি ভাবুন এবং কাজের জন্য উপযুক্ত উপকরণটি চয়ন করুন। যদি একটি না থাকে তবে এটি তৈরি করুন।