ক্ষেত্রের সামনের "এই" কীওয়ার্ড এবং সি # তে পদ্ধতিগুলির বিষয়ে বিবেচিত বর্তমান সেরা অনুশীলনগুলি কী?


14

যদি একই নামের সাথে একটি ভেরিয়েবল এবং ফিল্ডের মধ্যে পার্থক্য করার প্রয়োজন না হয় তবে আমি কখনই this.সি # তে কোনও ক্ষেত্র বা কোনও সদস্যের অ্যাক্সেসের সামনে রাখি না । আমি এটিকে m_প্রিফিক্সের চেয়ে আলাদা হিসাবে দেখি যা সি ++ তে প্রচলিত ছিল এবং মনে হয় যদি এটির সদস্য হওয়ার জন্য আপনাকে সত্যই প্রয়োজন হয় তবে আপনার শ্রেণিটি অনেক বড়।

যাইহোক, আমার অফিসে বেশ কয়েকজন লোক রয়েছেন যা দৃ strongly়ভাবে একমত নন।

বর্তমানের সেরা অনুশীলনগুলি সম্পর্কে কী বিবেচনা করা হয় this.?

সম্পাদনা: পরিষ্কার করার জন্য, আমি কখনই ব্যবহার করি না m_এবং কেবল this.যখন প্রয়োজন তখনই ব্যবহার করি ।


কি m_বলতে চাচ্ছি অনুমিত?
হতাশিত

2
@ ফ্রাস্ট্রেটেড যে ভেরিয়েবল ক্লাসের একজন সদস্য।
মাইকেল টড

দুঃখিত, আমি এমন ধারণা তৈরি করেছিলাম যে কেউই সম্ভবত ভাবতে পারে না যে আমি হাঙ্গেরীয় স্বরলিপি ব্যবহার করি। আমি বলতে this.চাইছিলাম যে আমি এম এর চেয়েও খারাপ হিসাবে মনে করি ।
অ্যান্ডি লোরি

3
ড্যুড, কেবল স্টাইলকপ ইনস্টল করুন এবং চালান! এটি অবশ্যই একটি এসও প্রশ্নের দ্বৈত।
জব

3
আপনার দলের সাথে একমত হওয়া বা একমত পোষণ করা নিরবচ্ছিন্ন, আপনার এখনও একটি দলে ধারাবাহিকতা দরকার। বিশেষত বৃহত্তর দলটি অন্যথায় এটি বন্য পশ্চিমের মতো সমস্ত উইল নীল হয়ে যায় এবং কাউবয় কোডার সম্পর্কে লোকেরা কী বলে আপনি তা জানেন। ;-)
ক্রিস

উত্তর:


14

ফ্রেমওয়ার্ক ডিজাইন নির্দেশিকা অনুসারে , সর্বজনীন বা সুরক্ষিত ক্ষেত্রগুলি উল্লেখ করার সময়:

ক্ষেত্রের নামের জন্য একটি উপসর্গ ব্যবহার করবেন না

উদাহরণস্বরূপ, m_একটি উপসর্গ।

সুতরাং, কোনও ক্ষেত্রের প্রকাশ্য এক্সপোজার thisএমএসডিএন-তে বর্ণিত কীওয়ার্ডের ব্যবহারের জন্য নিজেকে ধার দেয়

অনুরূপ নামে গোপন সদস্যদের যোগ্যতা অর্জনের জন্য, উদাহরণস্বরূপ: অনুলিপি করুন

public Employee(string name, string alias) 
{
   this.name = name;
   this.alias = alias;
}

ব্যক্তিগত ক্ষেত্রগুলি উল্লেখ করার সময়, আপনি চাইলে এটি ব্যবহার m_করতে পারেন। তবে, সর্বজনীন ক্ষেত্রগুলির জন্য আমি সেরা অনুশীলনগুলি অনুসরণ করার পরামর্শ দিচ্ছি।

ব্যক্তিগতভাবে, আমি আমার পরিবর্তনশীল নামগুলিতে আন্ডারস্কোর পছন্দ করি না। আমিও ধারাবাহিক হওয়ার চেষ্টা করি। সুতরাং, this.name = name;পাবলিক / প্রাইভেট উভয় পরিস্থিতিতেই কাজ করতে থাম্বের একটি ভাল নিয়ম।


+1: আমি আমার উত্তরে এটি উল্লেখ করছি তবে আপনার উত্তরটি অনেক বেশি বর্ণনামূলক।
জোয়েল ইথারটন

1
সম্মত - আমি বেশ কয়েকটি পরিস্থিতি দেখেছি যেখানে আপনার সম্পত্তি, একজন সদস্য এবং স্থানীয় নামের সাথে একই নাম রয়েছে same সম্পত্তিটি প্যাস্কাল (প্রথম অক্ষরের মূলধন) আপনাকে দুটি ভেরিয়েবলের সাথে ছেড়ে যায় যা উটের কেসযুক্ত (প্রথম বর্ণের নিম্নতর) হয়। পার্থক্য করার একমাত্র উপায় "এটি" দিয়ে। (প্রস্তাবিত) বা একটি উপসর্গ (প্রস্তাবিত নয়)। আমি উভয় ব্যবহার করেছি এবং অনুশীলনে এই কীওয়ার্ডটি অনুসরণ করা সহজ করে তোলে (আইএমও)।
মেয়ো

1
ফ্রেমওয়ার্ক পরামর্শের সাথে মজার বিষয় হ'ল সিএলআর উত্সটি m_উপসর্গ দিয়ে আবদ্ধ। আমার মনে হয় '_' হ'ল একটি ভাল উপসর্গ কারণ আপনি অ্যাসাইনমেন্ট টাইপগুলি থেকে স্ট্যাকওভারফ্লো সম্পর্কিত সমস্যাগুলি নিয়ে কখনই চিন্তা করবেন না
ক্রিস এস

@ ক্রিস এস - আমার অভিজ্ঞতায় মাইক্রোসফ্ট একটি "বিবর্তনীয় কোড প্রক্রিয়া" নথিভুক্ত ও বজায় রেখে ভাল করেছে। তারা এমন অনেক অনুশীলন ব্যবহার করেছে যা এখন "খারাপ অনুশীলন" হিসাবে বিবেচিত। সম্ভবত তারা তাদের ভুল থেকে শিখেছি কারণ। এর অর্থ এই নয় যে তারা ফিরে গিয়ে বিদ্যমান কোডটি পরিবর্তন করেছে কারণ এটি সর্বদা চেষ্টা করার মতো নয়। নতুন - অ-উত্তরাধিকারের অ্যাপ্লিকেশন কোডটিতে সর্বশেষতম নির্দেশিকা অনুসরণ করতে ভুলবেন না।
পি.ব্রায়ান.ম্যাকি

11

আমাদের দলের, আমরা ব্যবহারের মান গ্রহণ করেছে this.বা Me.শুধু দিকে তাকিয়ে এটিকে বড় ক্লাসের অবজেক্ট কোয়ালিফায়ার সাহায্য করার জন্য জুনিয়র ডেভেলপারদের আরো নির্দ্ধিধায় সঠিক / একটি পরিবর্তনশীল তাত্ক্ষণিক সুযোগ পার্থক্য।

কোড-ভিত্তিক এটি সম্পূর্ণ অহেতুক প্রভাব আমরা এটি কেবলমাত্র গ্রহণ করেছি কারণ এটি কিছু জুনিয়রদের সাথে আমরা আবিষ্কার করে এমন একটি তাত্ক্ষণিক সমস্যার সমাধান করেছিল। এর বাইরেও আমি এটিকে অন্তর্ভুক্ত করতে সহায়ক হিসাবে দেখছি না।


জুনিয়র কোডারদের সম্পর্কে দুর্দান্ত পয়েন্ট।
প্যাট্রিক হিউজ

2
আপনার ক্লাসগুলি আরও ছোট হওয়া উচিত নয়? নাকি এটি কোনও উত্তরাধিকারের বিষয়?
Tjart

@ জাজার্ট: ক্লাসগুলি যতটা বড় হতে হবে তত ছোট বা ছোট। এমনকি একটি ছোট শ্রেণিতে স্ক্রিনে যেমন প্রদর্শিত হয় তেমন একটি ভেরিয়েবলের সুযোগটি ভুলে যাওয়া সহজ হতে পারে।
জোয়েল ইথারটন

1
আপনার জুনিয়রদের @ জোয়েলথেরটনের সমস্যা কেন? পাইথন জুনিয়রদের বিপরীত সমস্যা রয়েছে যেখানে তারা স্ব যুক্ত করতে ভুলে গেছে। ব্যক্তিগত ভেরিয়েবল অ্যাক্সেস করতে। জুনিয়ররা কি কেবল ভুলে গিয়ে কনভেনশনকে জড়িয়ে ফেলবে না?
Tjart

1
@ জাজার: কখনও কখনও। তারা জুনিয়র হওয়ার কারণে তাদের সমস্যা রয়েছে এবং কখনও কখনও তারা কেবল মনোযোগ দেয় না বা অনুশীলিত চোখ এখনও পায় না। আমরা এই কৌশলটি একটি স্ট্যান্ডার্ড বা কনভেনশন হিসাবে সাইনপোস্ট হিসাবে বেশি ব্যবহার করেছি। আমাদের পোস্টারটি এখন থেকেই আমাদের জুনিয়রদের পরিবেশের সাথে অভ্যস্ত করে তুলেছে বলে এটি আসলে এখানে ব্যবহারের মধ্যে পড়ে। আমি ভাবছি যদি আমরা নতুন জুনিয়র ভাড়া করি (তাড়াতাড়ি যে কোনও সময় সম্ভব না হয়) এটি ফিরে আসতে পারে।
জোয়েল ইথারটন 12

10

স্টাইলকপ this.সো এর ব্যবহার কার্যকর করে , যদি আপনি এটিকে সর্বোত্তম অনুশীলন হিসাবে বিবেচনা করেন (যা আমি করি) তবে তার ব্যবহার this.সেরা ব্যবহার ।

আপনি যে স্টাইলটি গ্রহণ করেন তা আপনার এবং আপনার নিজস্ব কোডিং স্ট্যান্ডার্ডগুলির উপর নির্ভর করে, "সেরা" আপনি এটিকে যা সংজ্ঞায়িত করেন তা হ'ল। শুধু ধারাবাহিক হতে হবে। এটি বেমানানভাবে কেবল বিভ্রান্তির দিকে নিয়ে যায়।

আমার যুক্তিটি হ'ল this.কলগুলি ব্যবহার করে আপনি উদাহরণের বৈশিষ্ট্যগুলি উল্লেখ করছেন তা বোঝায়, উদাহরণস্বরূপ, এটি এটিকে হাইলাইট করতে সহায়তা করে যে আপনি তাদের পরিবর্তন করছেন (যদি আপনার কাছে থাকে this.x = ...) যা আপনি জানতে চান এমন কিছু। এটি এই সত্যটিও হাইলাইট করে যে আপনি যে কোনও সময় this.আপনার পদ্ধতিটি দেখেন কখনই স্থির হতে পারে না। মত কিছু কনভেনশন ব্যবহার করা m_এটিও করবে, তবে এটি একটি ম্যানুয়াল প্রচেষ্টা, যদি আপনি m_ক্লাসের বাইরে থেকে কোনও মানকে পাস করার জন্য কোনও স্ট্যাটিক বা রিফ্যাক্টর কোনও পদ্ধতি তৈরি করেন তবে আপনাকে নামটি পরিবর্তন করতে হবে, যদি আপনি ব্যবহার করছিলেন thisতারপরে সংকলক আপনাকে পরিবর্তন করতে বাধ্য করবে।

সহজভাবে ব্যবহার thisকরা সহজ কারণ আপনি যদি এটি ভুল হয়ে থাকেন তবে আপনার কোডটি সংকলন করবে না, আপনি যদি m_এটি ব্যবহার করেন তবে এটি ম্যানুয়াল প্রচেষ্টা এবং আপনি সরঞ্জামগুলি উপকারে নিচ্ছেন না।


9
এবং রিশার্পার "এটি" মুছে ফেলার পরামর্শ দিবে। আপনার মাইলেজ পরিবর্তিত হতে পারে.
কারা

অঁ্যা? রিশার্পার আমাকে কখনই এটি প্রস্তাব করেনি। আমার স্টাইলকপ প্লাগইন রয়েছে বলেই এটি হতে পারে?
জেসি সি স্লিকার 14

1
সঠিক, স্টাইলকপ ইনস্টল করা সেই বিকল্পটি আর # তে বন্ধ করে দেবে।
স্টিভ

5

ব্যবহার সম্পর্কে একটি দুর্দান্ত জিনিস m_হ'ল আপনি যখন ছোট্ট mইন্টিলিসেন্সটি টাইপ করবেন তখনই আপনাকে আপনার সমস্ত প্রাইভেট ভেরিয়েবলের একটি তালিকা দেবে, ব্যক্তিগতভাবে আমি মনে করি এটির পক্ষে এটি একটি উপকার; আমি একই কারণে s_বেসরকারী স্ট্যাটিকস এবং c_বেসরকারী স্থির জন্য যেতে হবে । এটি হাঙ্গেরিয়ান স্বরলিপি, তবে অর্থে এটি বোঝানো হয়েছে কারণ এটি পরিবর্তনশীল নামের সাথে দরকারী অর্থ যুক্ত করে যাতে অন্য কোনও প্রোগ্রামার এর নাম থেকে এটি সম্পর্কে এমন কিছু বলতে পারে যা পুরোপুরি সুস্পষ্ট নাও হতে পারে।

আমি অবশ্যই সদস্য এবং সদস্যবিহীন ভেরিয়েবলগুলির মধ্যে পার্থক্য করার কোনও উপায় না করার সাথে একমত নই কারণ তারা পৃথক এবং আমি যখন কোডটি পড়ি যেখানে লোকেরা ধর্মভেদে কোনও কিছু করেন না এটি পড়তে সত্যই কঠিন। this.প্রয়োজনীয় ব্যবহারের চেয়ে বেশি বয়লার প্লেট ব্যবহার করার মতো মনে হয়। তবে সত্যিই এটি ব্যক্তিগত স্বাদ, যদি আপনি কিছুক্ষণের জন্য একটি উপায় কোড করেন তবে আপনি সঠিক এবং অন্য সব কিছু ভুল বলে ভেবে শেষ করেন। এই প্রকল্পটি বুদ্ধিমান হয়ে উঠলে একমাত্র সত্য যে টিমটি রয়েছে তা হ'ল দলের প্রত্যেকটি সামঞ্জস্যপূর্ণ।


4
অথবা টাইপ করুন this.এবং ইন্টেলিজেন্স আপনাকে সহায়তা দিন।
স্টিভ

1
@ স্টিভ হাই: আপনি বিষয়টিটি মিস করছেন, তিনি বলছেন যে তিনি তালিকাতে বর্ণানুক্রমিকভাবে বাছাই করা হয়েছে, সমস্ত
এম_

2
this.তারিখের বাইরে নামকরণের কনভেনশনগুলির প্রয়োজন ছাড়াই ক্লাসের সমস্ত কিছু আপনাকে ব্যবহার করবে using আমি বিভিন্ন অক্ষরের বিন্দুটি বুঝতে পারি, আমি কেবল এগুলি প্রয়োজনীয় বলে মনে করি না। আপনার যদি এই কনভেনশনের প্রয়োজন হয় এমন এক শ্রেণিতে এতগুলি সম্পত্তি, ধ্রুবক ইত্যাদি থাকে তবে আপনার নকশাটি বেশ ভাঙা।
স্টিভ

2
@ স্টিভ হাই: এটি তাত্ত্বিক বিশ্বে দুর্দান্ত যেখানে টিমের প্রত্যেকেই দুর্দান্ত প্রোগ্রামার এবং তারা সকলেই তাদের ক্লাসগুলিকে ছোট ছোট কামড়িত অংশ এবং চুল্লি ভালভাবে বিভক্ত করে এবং নকশা ইত্যাদি সম্পর্কে ভাবার সময় পায় ... আমার অভিজ্ঞতা জীবনে নেই বেশ কিহাইট যে মত। তবে আমি একটি আদর্শ বিশ্বে একমত হই যে আপনি সম্ভবত সঠিক।

@ স্টিভ: টাইপিং m_আমাকে সমস্ত সদস্য ভেরিয়েবলের একটি তালিকা দেবে। টাইপিং this.আমাকে সদস্য ভেরিয়েবল এবং সদস্য ফাংশনগুলির একটি তালিকা দেবে।
শান

4

thisস্পষ্ট হয়। এটি একটি অপটিক্যাল চিহ্ন যা আপনি মিস করতে পারবেন না।

আমি প্রায় সর্বদা অন্তর্ভুক্ত কোডের চেয়ে সুস্পষ্ট কোড পছন্দ করি prefer এজন্য আমি thisঘন ঘন ব্যবহার করি । আমি এটিকে একটি সেরা অনুশীলন হিসাবে বিবেচনা করি।


4

আমি সর্বদা "এটি" ব্যবহার করি। যুক্তি দুটি সহজ সত্যের উপর ভিত্তি করে:

  • কোড পড়ার চেয়ে কোড লেখা বেশি কঠিন।
  • আপনি কোড লেখার চেয়ে প্রায়শই কোড পড়েন।

"এটি" এর ব্যবহার কারও পড়ার পক্ষে এটি পুরোপুরি স্পষ্ট করে তোলে (যেমন কেবল লেখকই নয়, তবে বাস্তবায়নের সুনির্দিষ্ট বিষয়গুলি সম্পূর্ণরূপে ভুলে যাওয়ার পরে 6 মাসের মধ্যে লেখককে অন্তর্ভুক্ত করতে পারে) হ্যাঁ, এটি একটি শ্রেণীর সদস্য আমরা ' এখানে সম্পর্কে কথা বলছি। "এম_" এবং এটি কেবল একটি সম্মেলন, এবং অন্য কোনও সম্মেলনের মতো এটিরও অপব্যবহার করা যেতে পারে (বা ব্যবহার করা হয় না) - সংকলনের সময় বা রান-টাইমে "এম _" / ইত্যাদি প্রয়োগ করার মতো কিছুই নেই। "এটি" আরও শক্তিশালী: আপনি একটি স্থানীয় ভেরিয়েবলে "m_" রাখতে পারেন এবং সংকলক অভিযোগ করবে না; আপনি "এটি" দিয়ে এটি করতে পারবেন না।

যদি আমি এটিকে দুঃখজনক বলে মনে করি তবে ভাষা চশমাগুলিতে "এটি" ব্যবহার বাধ্যতামূলক করা হয়নি।

একটি দুর্দান্ত বোনাস হিসাবে, ডিবাগ করার সময় আপনি "এই" উপরের ঘোড়া (বা একটি ঘড়ি যোগ করতে পারেন) এবং অন্যান্য সমস্ত শ্রেণীর সদস্যদেরও পরিদর্শন করতে পারেন - মূল্যবান তথ্য।


3

thisশব্দ 2 ভেরিয়েবল যে বিদ্যমান পার্থক্য বিশেষ করে ব্যবহার করা হয়, বিশেষ করে যখন করছেন আপনি যদি একটি কন্সট্রাকটর বা পদ্ধতি একই নামের একটি পরিবর্তনশীল সঙ্গে আছে কিন্তু একই ধরনের হতে পারে।

উদাহরণ:

public class Example {

    string reason;
    string cause;

    Example (string reason, string cause) {
        this.reason = reason;
        this.cause = cause;
    }

    //<Setter> if you want to explicitly write your onw
    public void setReason(stirng reason) {
        this.reason = reason;
    }
}

এটি (উদাহরণস্বরূপ this.reason = reason) ক্লাসের ভ্যারিয়েবলগুলিতে প্যারামিটারগুলি থেকে মান নির্ধারণ করে। thisমূলত reasonপ্যারামিটার ব্লক থেকে ক্লাস নেয় ।


2

আমি কিছু সময়ের জন্য এটি সম্পর্কে ভাবছিলাম। জাভাস্ক্রিপ্টে কিছু বিস্তৃত কোডিংয়ের পরে, আমি this.আমার সি # কোডটিতে প্রায়শই নিজেকে ব্যবহার করে ধরা পড়েছিলাম (এর আগে আমি এটি দ্বিপাক্ষিকতা এড়ানোর জন্য নির্মাণ বা অনুরূপ পদ্ধতিগুলিতে প্রায় এক্সক্লুসিভলি ব্যবহার করেছি)। সামান্য অতিরিক্ত পরিশ্রমের জন্য কোডটি কিছুটা স্পষ্ট করে তোলে, তদুপরি আপনি আপনার শ্রেণীর সদস্যের নাম উপসর্গ দিয়ে বিচ্ছিন্ন করবেন না এবং প্রসঙ্গটি স্পষ্ট বা বিশেষত জটিল বক্তব্যগুলিতে সদস্যদের 'সংক্ষিপ্ত পথে' ব্যবহার করতে ফিরে যেতে পারবেন। আমি কেবল যুক্ত করি this., যখন আমার দীর্ঘতর পদ্ধতি রয়েছে, দীর্ঘতর যুক্তি তালিকা বা অনেক স্থানীয় ভেরিয়েবল ঘোষিত হয়েছে এবং আমি মনে করি কোডটি কিছুটা অতিরিক্ত স্পষ্টতা থেকে লাভ করতে পারে, এমনকি যদি তা বাধ্য করা হয়।

তবে আমি ব্যক্তিগতভাবে m_উপসর্গের স্টাইলটি একেবারে ঘৃণা করি , হাঙ্গেরিয়ান কারণে খুব বেশি নয়, তবে আন্ডারস্কোর টাইপ করার জন্য একটি ব্যথা;) সুতরাং আমি এটিকে বিকল্প হিসাবে বিবেচনা করি না। আমি স্বীকার করব এটির শক্তিশালী পয়েন্ট রয়েছে যখন এটি ইন্টেলিজেন্সের ক্ষেত্রে আসে, তবে আপনি আবারও যুক্তি দিতে পারেন যে আপনি যদি সদস্য ভেরিয়েবলের প্রথম কয়েকটি অক্ষর মনে করতে না পারেন তবে আপনার শ্রেণিটি বড় to


1

আমি ক্লাস সদস্যদের জন্য একটি একক আন্ডারস্কোর উপসর্গ prever। _someVar;

কেন? আপনি প্রথম গ্লাসে জানেন যে এটি সদস্য, স্ট্যাক ভেরিয়েবল নয়। একটি তাত্ক্ষণিক নজরে সময় কেবল সুবিধা। এবং এটি "এই" কীওয়ার্ডের তুলনায় কম বিশৃঙ্খলা লাগে।


1

this.উপসর্গ / কীওয়ার্ডের মতো জিনিসগুলি ব্যবহার করা যা প্রয়োজনীয় নয় বা ফলাফল পরিবর্তন করা সর্বদা বিষয়ভিত্তিক। তবে আমি মনে করি যে আমরা বেশিরভাগ ক্ষেত্রে স্থানীয় ভেরিয়েবলগুলি থেকে ক্ষেত্রগুলি পৃথক করতে চাই ti কেউ কেউ একটি আন্ডারস্কোর উপসর্গ ব্যবহার করেন (যা আমি কুশ্রী এবং এক ধরণের হাঙ্গেরিয়ান স্বীকৃতি পেয়েছি), অন্যরা this.কীওয়ার্ডটি ব্যবহার করে । আমি পরের একজন। এটি কেবল পাঠযোগ্যতা এবং বোধগম্যতার বিষয়ে। এটি আরও পরিষ্কার বা আরও পড়তে পারা যায় তবে আমি একটু অতিরিক্ত টাইপ করতে কিছু মনে করি না। আমি চোখের পলকে ক্ষেত্র এবং ভেরিয়েবলের পার্থক্য করতে চাই।

আমি সর্বদা অনুরূপ ক্ষেত্র myFieldএবং প্যারামিটারের নাম এবং স্থানীয় ভেরিয়েবলের নামগুলির সমান সংজ্ঞায়িত করি myField। কোন আন্ডারস্কোর নেই, উপসর্গ নেই। আমি thisযেখানেই ক্ষেত্র উল্লেখ করি সেখানেই আমি ব্যবহার করি। এইভাবে আমি স্থানীয় ভেরিয়েবল এবং আর্গুমেন্ট থেকে কোনও ধরণের উপসর্গ ছাড়াই ক্ষেত্রগুলি পার্থক্য করতে পারি। অবশ্যই, এর মতো ক্ষেত্রে thisকীওয়ার্ডটি প্রয়োজনীয়:

public Person(string firstName)
{
    this.firstName = firstName;
}

আমার বৈশিষ্ট্যগুলি তাই এর মতো দেখায় (হ্যাঁ, আমি সর্বদা সম্পত্তিটি দিয়ে ক্ষেত্রটি রাখি, এবং আমার ফাইলের শীর্ষে কোথাও সম্পর্কিত নয়):

private string firstName;
public string FirstName
{
    get { return this.firstName; }
}

এটি সুন্দরভাবে পড়ে: এই প্রথম নামটি ফিরিয়ে দিন


-2

সম্পাদনা: আমার উত্তর পরিষ্কারভাবে একটি উত্তর নয়। সুতরাং এখানে একটি সম্পাদনা। মাইক্রোসফ্ট কোডিংয়ের নির্দেশিকাতে বলা হয়েছে:

2.6 নামকরণ

সদস্য ভেরিয়েবলগুলির জন্য একটি উপসর্গ ব্যবহার করবেন না ( , মি , এস_, ইত্যাদি)। আপনি যদি স্থানীয় এবং সদস্য ভেরিয়েবলের মধ্যে পার্থক্য করতে চান তবে আপনার "এটি" ব্যবহার করা উচিত। সি # এবং "আমি" তে ভিবি.এনইটি-তে

এখানে পাওয়া যাবে: http://blogs.msdn.com/b/brada/archive/2005/01/26/361363.aspx

সুতরাং এটি দেখে মনে হবে কমপক্ষে এমএস থেকে কোনও সুস্পষ্ট গাইডলাইন নেই, যদিও অন্য একটি উত্তর বলে যে স্টাইলকপ এটিকে গাইডলাইন করে তোলে। এই বিষয়গুলিতে কোনও কর্তৃত্ব নেই, সুতরাং আমি আপনাকে নিজের মন তৈরি করার পরামর্শ দিচ্ছি, বা এই ক্ষেত্রে আপনার দলে ছেড়ে দেওয়া উচিত। এটা এত বড় ব্যাপার নয়।

আমার আসল উত্তরটি আমি ব্যক্তিগতভাবে আপনার সাথে একমত, তবে একটি পঠন বোধগম্য পরীক্ষা দুটি পদ্ধতির একে অপরের বিরুদ্ধে মূল্যবান হতে পারে। অন্যথায় এই স্টাইলের জিনিসগুলি কেবল কাদামাটি।

আমার সালভো অনুসরণ করুন: আমার মতে লোকেরা অযাচিতভাবে তাদের কোড শৈলীকে জটিল করে তুলছে, এবং যদি তাদের কোনও শ্রেণি স্তরের পরিবর্তনশীল বলে বোঝানোর দরকার হয় তবে কোডটিতে বয়সের পুরাতন রেসিপি-পদ্ধতির মতো আরও কিছু গুরুতর কাঠামোগত সমস্যা থাকতে পারে they ক্লাসের শীর্ষে প্রাইভেট ভেরিয়েবলগুলি স্থাপন করা যা আপনাকে ক্রমাগত উপরের দিকে স্ক্রোল করতে বাধ্য করে।

এটি আমাকে নামকরণের সম্মেলনগুলির তুলনায় সঠিক "এটি কী করে" বনাম কনভেনশনগুলির মধ্যে একটি হিসাবে আঘাত করে। ব্রেভিটি সুস্পষ্ট হওয়ার উপরোক্ত হওয়া উচিত। এটি এমন একটি পাঠ যা প্রায়শই গতিময় ভাষা দ্বারা পুনরাবৃত্তি হয়। আমাদের সব ফ্লফের দরকার নেই!


1
-1। প্রশ্নের উত্তর দেওয়ার পরিবর্তে, আপনি কেবল আপনার মতামত দিচ্ছেন যা সেরা অনুশীলনের প্রতিফলন করে না।
আর্সেনী মোরজেঙ্কো

সুতরাং এটি স্টাইলোকপ অনুযায়ী ব্যবহার। মেইনমায় সেরা অনুশীলন। আমি সম্পূর্ণ একমত। আমি নোট উত্তরটি সম্পাদনা করব।
Tjart

@ মাইনমা ​​এখন আরও ভাল? অন্যান্য অনেক উত্তর কেবল একটি মতামত দেয় তবে তা নিম্নোক্ত হয় না। সেরা অনুশীলনগুলি কী এবং সেগুলি কোথায় পাওয়া যায়?
Tjart

-3

এই. প্রায়শই অযাচিত আওয়াজ তুলতে পারে।

এখানে আমার সমাধান:

  • parameter_names_
  • local_variables
  • ANY_CONSTANT
  • _private_members
  • NonPrivateProperties
  • _নিপ্রাইভেটপ্রোপার্টি // ব্যাকার
  • ব্যক্তিগত সম্পত্তি
  • _প্রাইভেটপ্রোপার্টি // ব্যাকার

2
এটি সাধারণ। নেট শৈলীর বিপরীতে in পুরো পথ দিয়ে উট এবং প্যাসকাল কেসিং করা। আপনার পদ্ধতিটি বেশ বেমানান। ধ্রুবকদের ক্যাপ্টিলাইজ করার জন্য এটি বেশ পুরানো শৈলীর নিয়ম, এবং এটি সাধারণভাবে। নেট সম্প্রদায়তে ব্যবহৃত হয় না।
Tjart

আমি আশা করি যে আপনি প্রতিটি ফাইলের শীর্ষে একটি মন্তব্য রেখেছেন সেই পরিকল্পনাটি
নিরবিচ্ছিন্ন

আপনি কীভাবে এটি যুক্ত করছেন তা আমি বুঝতে পারি না। শোরগোল তৈরি করবে, তবে সমস্ত জিব্বারিশটি তা করে না
ট্র্যাভিস ওয়েস্টন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.