সি # তে, using
বিবৃতিটি জঞ্জাল সংগ্রহকারীর জন্য অপেক্ষা না করে সংস্থানীয় পদ্ধতিতে সংস্থানগুলি নিষ্পত্তি করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, এটি ব্যবহৃত হতে পারে:
এসকিউএল আদেশ বা সংযোগগুলি নিষ্পত্তি করুন
স্ট্রিমগুলি বন্ধ করুন, কোনও ফাইলের মতো অন্তর্নিহিত উত্সকে মুক্ত করে,
বিনামূল্যে জিডিআই + উপাদান,
প্রভৃতি
আমি লক্ষ্য করেছি যে using
যেখানে নিষ্পত্তি করার মতো কিছুই নেই সেখানে আরও বেশি ব্যবহৃত হয়, তবে যেখানে ফোন করা using
দুটি পৃথক কমান্ডের চেয়ে ব্লক লেখার পক্ষে আরও সুবিধাজনক ।
উদাহরণ:
স্ট্যাক ওভারফ্লো টিম দ্বারা লিখিত মিনিপ্রফিলার
using
প্রোফাইলগুলিতে ব্লকগুলি বোঝাতে ব্যবহার করে:using (profiler.Step("Name goes here")) { this.DoSomethingUseful(i - 1); }
একটি বিকল্প পদ্ধতির দুটি ব্লক থাকতে হবে:
var p = profiler.Start("Name goes here"); this.DoSomethingUseful(i - 1); profiler.Stop(p);
আর একটি পদ্ধতির ক্রিয়া ব্যবহার করা হবে:
profiler.Step("Name goes here", () => this.DoSomethingUseful(i - 1));
এএসপি.এনইটি এমভিসি
using
ফর্মগুলিও বেছে নিয়েছিল :<% using (Html.BeginForm()) { %> <label for="firstName">Name:</label> <%= Html.TextBox("name")%> <input type="submit" value="Save" /> <% } %>
এই ধরনের ব্যবহার কি উপযুক্ত? এটির ন্যায্যতা কীভাবে দেওয়া যায়, সেখানে বিভিন্ন ত্রুটি রয়েছে:
নতুনদের হারিয়ে যেতে হবে, যেহেতু এই জাতীয় ব্যবহার বই এবং ভাষার স্পেসিফিকেশনে বর্ণিত একটির সাথে মিলে না,
কোডটি এক্সপ্রেশনভ হওয়া উচিত। এখানে, অভিব্যক্তিটি ভোগাচ্ছে, যেহেতু এর যথাযথ ব্যবহারটি
using
দেখানোর জন্য যে পিছনে রয়েছে, সেখানে একটি সংস্থান, একটি নেটওয়ার্ক সংযোগ বা একটি ডাটাবেস রয়েছে যা আবর্জনা সংগ্রাহকের অপেক্ষা না করে প্রকাশ করা উচিত।
using
: পরের বিবৃতি (উদাহরণস্বরূপprofiler.Stop(p)
) ব্যতিক্রম এবং নিয়ন্ত্রণ প্রবাহের মুখে মৃত্যুদন্ড কার্যকর করা গ্যারান্টিযুক্ত নয়।