এই ধরণের সিনট্যাক্সটিকে প্রথমে কেন ব্যবহার করবেন সে সম্পর্কে কোনও সুস্পষ্ট কারণ নেই reasons
সাধারণত, বুলিয়ান যুক্তিগুলি এড়াতে চেষ্টা করুন যা দূরত্বে নির্বিচারে দেখা যায়। includeManagement(সম্ভবত সম্ভবত) ফলাফল প্রভাবিত করবে। তবে যুক্তি দেখে মনে হচ্ছে এটি "সামান্য ওজন" বহন করে।
এনামের ব্যবহার নিয়ে আলোচনা করা হয়েছে, এটি কেবল "আরও ওজন বহন করে" যুক্তিটির মতো দেখাবে না, তবে এটি পদ্ধতিতে স্কেলিবিলিটিও সরবরাহ করবে। এটি তবে সব ক্ষেত্রেই সেরা সমাধান নাও হতে পারে, যেহেতু আপনার ReturnEmployeeIds-াদমাদিকে -enum পাশাপাশি স্কেল করতে হবে WhatToInclude( নিক্লাসজে জবাব দেখুন)। এটি পরে আপনাকে মাথাব্যথা দেয়।
এটি বিবেচনা করুন: আপনি যদি-স্কেলটি স্কেল করেন WhatToIncludeতবে তবে-আদর্শ নয় ReturnEmployeeIds। এটি তখন একটি ArgumentOutOfRangeException(সেরা কেস) নিক্ষেপ করতে পারে বা পুরোপুরি অযাচিত কিছু ( nullবা একটি খালি List<Guid>) ফিরিয়ে দিতে পারে । যা কিছু ক্ষেত্রে প্রোগ্রামারকে বিভ্রান্ত করতে পারে, বিশেষত যদি ReturnEmployeeIdsআপনি কোনও শ্রেণি-গ্রন্থাগারে থাকেন, যেখানে উত্স-কোডটি সহজেই পাওয়া যায় না।
প্রশিক্ষণার্থীরা সবার "সাবসেট" হয়ে দেখে যে কেউ WhatToInclude.Traineesযদি WhatToInclude.Allতা করে তবে তা কাজ করবে বলে ধরে নেওয়া হবে।
এটি (অবশ্যই) কার্যকর করে কীভাবে তার উপর নির্ভর করে ReturnEmployeeIds।
যে ক্ষেত্রে বুলিয়ান আর্গুমেন্টটি প্রবেশ করা যেতে পারে, আমি আপনার পরিবর্তে এটি দুটি পদ্ধতির (বা আরও বেশি প্রয়োজন হলে) বিভক্ত করার চেষ্টা করি; এক নিষ্কাশন হতে পারে ReturnAllEmployeeIds, ReturnManagementIdsএবং ReturnRegularEmployeeIds। এটি সমস্ত ঘাঁটিগুলিকে আচ্ছাদন করে এবং যে কেউ এটি প্রয়োগ করে তার পক্ষে একেবারে স্ব-বর্ণনামূলক। এটিতে উপরে উল্লিখিত "স্কেলিং" -বিধিও থাকবে না।
যেহেতু বুলিয়ান যুক্তিযুক্ত কোনও কিছুর জন্য কেবল দুটি ফলাফল রয়েছে। দুটি পদ্ধতি প্রয়োগ করা, খুব সামান্য পরিমাণে প্রচেষ্টা গ্রহণ করে।
কম কোড, খুব কমই ভাল।
সঙ্গে এই কথা, সেখানে আছে কিছু কিছু ক্ষেত্রে যেখানে স্পষ্টভাবে যুক্তি প্রকাশক পাঠযোগ্যতা উন্নত। উদাহরণস্বরূপ বিবেচনা করুন। GetLatestNews(max: 10)। GetLatestNews(10)হয় এখনও স্বশাসিত প্রশংসনীয়, এর স্পষ্ট ঘোষণা maxইচ্ছা সাহায্যের পরিষ্কার কোনো বিহ্বলতায়।
এবং যদি আপনার অবশ্যই একটি বুলিয়ান যুক্তি থাকতে পারে যা কেবলমাত্র পড়ার মাধ্যমে trueবা ব্যবহারটি অনুমান করা যায় না false। তারপরে আমি বলব:
var ids = ReturnEmployeeIds(includeManagement: true);
.. একেবারে ভাল এবং এর চেয়ে বেশি পাঠযোগ্য:
var ids = ReturnEmployeeIds(true);
যেহেতু দ্বিতীয় উদাহরণে, এর trueঅর্থ হ'ল একেবারে কিছু । তবে আমি এই যুক্তি এড়াতে চেষ্টা করব।
booleanপদ্ধতি যুক্তি ব্যবহার করা উচিত এবং কীভাবে?