গুরুত্বপূর্ণ আপডেট (12 এপ্রিল, 2016):
এটি আমাদের নজরে আনা হয়েছিল যে। নেট কোরএফএক্স টিমের অভ্যন্তরীণ মানটি কেন কোনও অন্তর্দৃষ্টি না দিয়ে আন্ডারস্কোর-স্বরলিপি ব্যবহার করার জন্য জোর দেয়। তবে আমরা যদি # 3 নিয়ম এ ঘনিষ্ঠভাবে চেহারা এটা স্পষ্ট হয়ে একটি সিস্টেম আছে যে _, t_, s_উপসর্গ দাড়ায় যে কেন _প্রথম স্থানে নির্বাচিত করা হয়।
- আমরা
_camelCaseঅভ্যন্তরীণ এবং ব্যক্তিগত ক্ষেত্রগুলির জন্য ব্যবহার করি এবং যেখানে সম্ভব সেখানে পঠনযোগ্য ব্যবহার করি। প্রিফিক্স উদাহরণ ক্ষেত্রগুলি সহ _, স্থির ক্ষেত্রগুলি সহ s_এবং স্ট্যাটিক ক্ষেত্রগুলি সহ থ্রেড করুন t_। যখন স্থির ক্ষেত্রগুলিতে ব্যবহৃত হয়, readonlyতার পরে আসবে static(অর্থাত static readonlyনা readonly static)।
this.একেবারে প্রয়োজনীয় না হলে আমরা এড়াতে পারি ।
সুতরাং আপনি যদি ঠিক নেট নেটফেক্স টিমের মতো কিছু সমালোচনামূলক, মাল্টিথ্রেডেড, সিস্টেম লেভেল কোড নিয়ে কাজ করে থাকেন তবে তা দৃ S়ভাবে সুপারিশ করা হবে যে আপনি:
- তাদের কোডিং মানগুলিতে মেনে চলুন এবং
- আন্ডারস্কোর-স্বরলিপি এবং ব্যবহার করুন
- এই উত্তর আর পড়বেন না
অন্যথায় দয়া করে পড়ুন ...
মূল উত্তর:
আসুন প্রথমে আমরা কী বিষয়ে কথা বলছি তাতে একমত হোন প্রশ্নটি হল আমরা কীভাবে অবিচলিত পদ্ধতিগুলির মধ্যে থেকে উদাহরণ সদস্যদের অ্যাক্সেস করব এবং যদি কোনও শ্রেণি / উপ-শ্রেণীর নির্মাতারা দৃশ্যমানতা সংশোধকরা এটি করার অনুমতি দেয় তবে।
আন্ডারস্কোর-স্বরলিপি
- পরামর্শ দেয় যে আপনি ব্যক্তিগত ক্ষেত্রের নামে "_" উপসর্গটি ব্যবহার করুন
- এটি আরও বলেছে যে একেবারে প্রয়োজনীয় না হলে আপনার কখনই "এটি" ব্যবহার করা উচিত নয়
এই-স্বরলিপি
- পরামর্শ দেয় আপনি সর্বদা "এটি" ব্যবহার করুন। কোনও উদাহরণ সদস্যকে অ্যাক্সেস করতে
কেন এই স্বরলিপি বিদ্যমান?
কারণ আপনি এইভাবে
- ক্ষেত্র থেকে কোনও পরামিতি আলাদা করে বলুন যখন তারা একই নাম ভাগ করে নেয়
- আপনি বর্তমান দৃষ্টান্তের প্রসঙ্গে কাজ করছেন তা নিশ্চিত করুন
উদাহরণ
public class Demo
{
private String name;
public Demo(String name) {
this.name = name;
}
}
আন্ডারস্কোর-স্বরলিপি কেন বিদ্যমান?
কিছু লোক "এটি" টাইপ করতে পছন্দ করে না তবে তাদের ক্ষেত্র এবং একটি পরামিতি আলাদা করার জন্য একটি উপায় প্রয়োজন, তাই তারা ক্ষেত্রের সামনে "_" ব্যবহার করতে রাজি হয়েছিল
উদাহরণ
public class Demo
{
private String _name;
public Demo(String name) {
_name = name;
}
}
কেউ ভাবতে পারেন এটি কেবল ব্যক্তিগত স্বাদের বিষয় এবং উভয় উপায় সমানভাবে ভাল / খারাপ। তবে কিছু দিক রয়েছে যেখানে এই স্বরলিপিটি আন্ডারস্কোর-স্বরলিপিটিকে পরাজিত করে:
নির্মলতা
- আন্ডারস্কোর-নোটেশন ক্লটটারের নাম
- এই স্বরলিপি নামগুলি অক্ষত রাখে
জ্ঞানীয় লোড
আন্ডারস্কোর-স্বরলিপিটি অসঙ্গত, এটি আপনাকে ক্ষেত্রগুলিকে একটি বিশেষ উপায়ে আচরণ করে তবে আপনি এটি অন্য সদস্যদের সাথে ব্যবহার করতে পারবেন না, প্রতিবার আপনার নিজের সম্পত্তি বা ক্ষেত্রের প্রয়োজন কিনা তা নিজেকে জিজ্ঞাসা করার দরকার পড়ে
এই স্বরলিপিটি সামঞ্জস্যপূর্ণ, আপনাকে ভাবতে হবে না, আপনি যে কোনও সদস্যকে উল্লেখ করতে সর্বদা "এটি" ব্যবহার করেন
আপডেট: নিম্নলিখিতটি দেখানো হয়েছে যে কোনও সুবিধা পয়েন্ট নয়
রক্ষণাবেক্ষণ
আন্ডারস্কোর-স্বরলিপিটি আপনাকে _রিফ্যাক্টর করার সময় নজর রাখা উচিত , বলুন কোনও ক্ষেত্রকে সম্পত্তিতে পরিণত করা (অপসারণ _) বা বিপরীতে (যুক্ত _)
এই স্বরলিপি যেমন সমস্যা নেই
স্বতসম্পূর্ণ
যখন আপনার উদাহরণের সদস্যদের তালিকাটি দেখতে হবে:
- আন্ডারস্কোর-স্বরলিপি আপনাকে খুব বেশি সহায়তা করে না, কারণ আপনি যখন "_" টাইপ করেন তখন স্বতঃসমাপ্ত পপআপ আপনাকে ব্যক্তিগত ক্ষেত্রগুলি প্রদর্শন করে এবং সংস্থাগুলি থেকে পাওয়া সমস্ত প্রকারের সাথে উপস্থিত সদস্যদের সাথে মিশ্রিত সমস্ত সংযোগগুলি প্রদর্শন করে shows
- এই-স্বরলিপিটি আপনাকে একটি পরিষ্কার উত্তর দেয়, "এটি" টাইপ করে আপনি যা দেখেন সেগুলিই সদস্যদের তালিকা এবং অন্য কিছুই নয়
অস্পষ্টতা
কখনও কখনও আপনাকে ইন্টেলিসেন্সের সাহায্য ছাড়াই কোডটি মোকাবেলা করতে হবে। উদাহরণস্বরূপ আপনি যখন কোড পর্যালোচনা করেন বা অনলাইনে সোর্স কোড ব্রাউজ করেন।
সম্প্রসারণ পদ্ধতি
"এটি" ব্যবহার না করে আপনি নিজেই উদাহরণটিতে এক্সটেনশন পদ্ধতি ব্যবহার করতে পারবেন না।
- আন্ডারস্কোর-স্বরলিপিটির প্রয়োজন হয় যে আপনাকে যে এক্সটেনশন পদ্ধতিগুলি করতে হবে তার সাথে আপনি "এটি" ব্যবহার করবেন না
- এই-স্বরলিপি আপনাকে দ্বিধা থেকে বাঁচায়, আপনি সর্বদা "এটি", পিরিয়ড ব্যবহার করেন।
ভিজ্যুয়াল স্টুডিও সমর্থন
সরকারী সুপারিশ
অনেকগুলি সরকারী নির্দেশিকা রয়েছে যা স্পষ্টভাবে বলেছে "আন্ডারস্কোর ব্যবহার করবেন না" বিশেষত সি # তে