শ্রেণিতে আইটেমের ক্রম: ক্ষেত্র, সম্পত্তি, নির্মাতা, পদ্ধতি


637

শ্রেণি কাঠামোর ক্ষেত্রে আইটেমগুলির ক্রমের জন্য কি কোনও অফিসিয়াল সি # গাইডলাইন রয়েছে?

এটি কি যায়:

  • পাবলিক ফিল্ডস
  • ব্যক্তিগত ক্ষেত্র
  • প্রোপার্টি
  • কন্সট্রাকটর
  • পদ্ধতি
    ?

আইটেমগুলির ক্রম সম্পর্কে যদি কোনও কঠোর এবং দ্রুত নিয়ম থাকে তবে আমি আগ্রহী? আমি জায়গা জুড়ে ধরনের। আমি একটি নির্দিষ্ট স্ট্যান্ডার্ডের সাথে লেগে থাকতে চাই যাতে আমি এটি সর্বত্রই করতে পারি।

আসল সমস্যাটি হ'ল আমার আরও জটিল বৈশিষ্ট্যগুলি পদ্ধতিগুলির মতো অনেকগুলি সন্ধান করে এবং তারা নির্মাতার সামনে শীর্ষে জায়গাটি অনুভব করে।

কোন টিপস / পরামর্শ?


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

2
একটি সহজ কৌশল হ'ল। নেট (ভিএস এফ 12) এর কিছু জটিল শ্রেণির মেটাডেটা। আপনি কীভাবে কমপক্ষে সদস্যদের publicএবং protectedসদস্যদের জন্য আদেশ করেছিলেন তা জানতে পারবেন ।
নওফাল

19
এই প্রশ্নটি মতামত ভিত্তিক নয়, কারণ এটি একটি অফিসিয়াল গাইডলাইন আছে কিনা তা জিজ্ঞাসা করে। হয় কোনও গাইডলাইন আছে বা নেই!
সাইমন MᶜKenzie

2
@ নওফাল আমি বুঝতে পারি এটি একটি পুরানো মন্তব্য, আপনি যে কৌশলটি উল্লেখ করেছেন তা আমি পছন্দ করি তবে এটি উল্লেখ করা উচিত যে এটি প্রদর্শন করবে না privateবা internalসদস্যদের (আমি বিশ্বাস করি)। দেখার দুর্দান্ত উপায় publicএবং protectedতবে। আমরা .NET ফ্রেমওয়ার্ক ক্লাস উৎস দেখতে পারেন, এখানে referencesource.microsoft.com খুব
আদম Plocher

উত্তর:


949

অনুযায়ী StyleCop বিধি ডকুমেন্টেশন ক্রম নিম্নরূপ হয়।

শ্রেণীর মধ্যে, কাঠামো বা ইন্টারফেস: (SA1201 এবং SA1203)

  • কনস্ট্যান্ট ফিল্ডস
  • ক্ষেত্রসমূহ
  • কন্সট্রাকটর
  • ফাইনালাইজার (ধ্বংসকারী)
  • প্রতিনিধিদের
  • ঘটনাবলী
  • Enums
  • ইন্টারফেস ( ইন্টারফেস বাস্তবায়ন) )
  • প্রোপার্টি
  • Indexers
  • পদ্ধতি
  • structs
  • ক্লাস

এই গ্রুপগুলির প্রত্যেকের মধ্যেই অ্যাক্সেসের মাধ্যমে অর্ডার করুন: (SA1202)

  • প্রকাশ্য
  • অভ্যন্তরীণ
  • সুরক্ষিত অভ্যন্তরীণ
  • রক্ষিত
  • ব্যক্তিগত

প্রতিটি অ্যাক্সেস গোষ্ঠীর মধ্যে স্থির করে অর্ডার করুন, তারপরে অ স্থির: (SA1204)

  • স্থির
  • অ স্ট্যাটিক

ক্ষেত্রগুলির প্রতিটি স্থিতিশীল / অ-স্থিতিশীল গোষ্ঠীর মধ্যে, কেবল পাঠ্যভাবে আদেশ করুন, তারপরে অ-পাঠ্য: (SA1214 এবং SA1215)

  • শুধুমাত্র পাঠযোগ্য
  • অ কেবলমাত্র

একটি তালিকাভুক্ত তালিকাটি ১৩০ লম্বা লম্বা, সুতরাং আমি এটি এখানে আনরোল করব না। নিবন্ধভুক্ত পদ্ধতিগুলির অংশগুলি হ'ল:

  • পাবলিক স্ট্যাটিক পদ্ধতি
  • পাবলিক পদ্ধতি
  • অভ্যন্তরীণ স্থির পদ্ধতি
  • অভ্যন্তরীণ পদ্ধতি
  • সুরক্ষিত অভ্যন্তরীণ স্থির পদ্ধতি
  • সুরক্ষিত অভ্যন্তরীণ পদ্ধতি
  • স্থিতিশীল পদ্ধতি সুরক্ষিত
  • সুরক্ষিত পদ্ধতি
  • ব্যক্তিগত স্ট্যাটিক পদ্ধতি
  • ব্যক্তিগত পদ্ধতি

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


31
আমি এই পোস্টে প্রচেষ্টা গ্রহণ করার জন্য আপনাকে ধন্যবাদ জানাতে চাই। আমি স্টাইলকপ স্টাফকে একটি স্ট্যান্ডার্ড বানানোর চেষ্টা করছি (এমনকি যদি কেবল সামঞ্জস্য বজায় রাখতে এবং জিনিসগুলি সন্ধান করা সহজ করে তোলে) এবং এটি মূল্যবান।
কেনি মান

47
ব্যক্তিগতভাবে, আমি বিরক্তিকর স্থির পদ্ধতির ক্রমগুলি খুঁজে পাই। আমি স্থির পাবলিক পদ্ধতির পক্ষে যুক্তিটি দেখতে পাচ্ছি, তবে আমি সাধারণত সদস্যদের পরে ব্যক্তিগত স্ট্যাটিক পদ্ধতি চাই। এগুলি সর্বোপরি ইউটিলিটি।
জোনাথন রাইট

18
আমি আংশিক শ্রেণীর টিপটি পছন্দ করেছি
কিথ সিরমন্স

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

4
@ ফ্রানসোইসওয়াহাল কি আংশিক শ্রেণীর সমন্বয়কারী সংস্থারটির সাথে ওভারহেড যুক্ত যে একক ধরণের?
dav_i

38

দৃশ্যমানতার দ্বারা বা আইটেমের ধরণের (ক্ষেত্র, সম্পত্তি, পদ্ধতি ইত্যাদি) দ্বারা দলবদ্ধকরণের পরিবর্তে কার্যকারিতা অনুসারে গ্রুপিং সম্পর্কে কীভাবে?


3
স্টাইলকপ সুপারিশগুলি ব্যবহার করে "বাছাই" করা হলে এটি এক ধরণের কার্যকারিতা। কিছু পদ্ধতির পাবলিক এবং অন্যগুলি ব্যক্তিগত থাকার পিছনে একটি ভাল কারণ রয়েছে। কোডটি সত্যই আরও ভাল পঠনযোগ্য: কোনও শ্রেণীর .cs ফাইল খোলার সাথে সাথে আমি তাত্ক্ষণিকভাবে সরকারী পদ্ধতিগুলি দেখতে পাই যেগুলি ব্যক্তিগতগুলির চেয়ে "বেশি গুরুত্বপূর্ণ" (যে শ্রেণীর লোকটি class
শ্রেণিটি

75
আপনি যদি আপনার ক্লাসে এতগুলি পদ্ধতি, বৈশিষ্ট্য ইত্যাদি পেয়ে থাকেন যে আপনাকে বিভাগ অনুসারে তাদের গোষ্ঠী করা দরকার, সম্ভবত এটি ক্লাসটি খুব বেশি করছে যে একটি চিহ্ন?
রায়ান লুন্ডি

10
শ্রেণিটি ছোট হলেও, জনসাধারণের সাথে সম্পর্কিত বেসরকারী পদ্ধতিগুলি যা কেবলমাত্র এই পাবলিক পদ্ধতিতে ডাকা হয় তার সাথে গোষ্ঠীভিত্তিক পদ্ধতিগুলি কী বোঝায়?
মার্কাস মেয়ার

11
+1 যদি সর্বজনীন পদ্ধতি Foo () কোনও সুরক্ষিত / বেসরকারী ইন্টার্নালফু () বলে, তবে সেই দ্বিতীয় পদ্ধতিটি উত্সের মধ্যে DoFoo () এর নীচে সঠিকভাবে হওয়া উচিত, অন্য সুরক্ষিত / ব্যক্তিগত পদ্ধতির মধ্যে কোথাও না নীচে।
অ্যান্ডার্স ফোর্সগ্রেন

60
কার্যকারিতা অনুসারে
গ্রুপিংকে

26

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

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

সি # 6 এ আসন্ন প্রাথমিক কনস্ট্রাক্টর বৈশিষ্ট্যটি প্রমাণ দেয় যে নির্মাণকারীর জন্য প্রাকৃতিক জায়গাটি একটি শ্রেণীর একেবারে শীর্ষে রয়েছে - বাস্তবে প্রাথমিক কন্সট্রাক্টরগুলি ওপেন বন্ধনীগুলির আগেই নির্দিষ্ট করা হয়।

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


2
শ্রেণি সূচনা / নির্মাণ আমার মতে, সংশ্লেষিত। স্পষ্টত নির্মাণকারী পরিচালনার আগে ক্ষেত্রগুলি সূচনা করা হয়, সুতরাং আপনার প্রয়োজনীয় যুক্তি অনুসারে সদস্যদের ব্যবহৃত / তৈরি করা ক্রমে সেট করার বিষয়ে আপনার যুক্তিটি বরাবর চালানো হবে, প্রাথমিক ক্ষেত্রগুলি পরিষ্কারভাবে নির্ধারিত কনস্ট্রাক্টরের আগে হবে be সূচিত স্ট্যাটিক ক্ষেত্র এবং স্থির নির্মাতারা এটিকে আরও আকর্ষণীয় করে তোলে।
ডেভিড কাল্প

1
প্রকৃতপক্ষে, তারা যে ক্রমটি মানুষের দ্বারা সন্ধান করার প্রবণতা রয়েছে, সাহিত্যিক প্রোগ্রামিংয়ের ধারণা সেই কোডটি প্রথমে মানুষের দ্বারা পঠনযোগ্য হওয়া উচিত।
উজ্জ্বল

1
লক্ষ্য করুন প্রাথমিক কনস্ট্রাকটর সি # 6 জন্য পরিকল্পনা থেকে সরানো হয়েছে: stackoverflow.com/a/26915809/5085211
fuglede

4
10 এর মধ্যে 9 বার, আমি পাবলিক ইন্টারফেসের সন্ধান করছি, এ কারণেই আমি সর্বজনীন সদস্যদের প্রথমে রাখি, তারপরে অভ্যন্তরীণ, তারপরে সুরক্ষিত এবং অবশেষে ব্যক্তিগত সদস্যরা।
ম্যাট ডেভিস

15

আমি কোনও ভাষা বা শিল্পের মান সম্পর্কে জানি না, তবে আমি প্রতিটি বিভাগকে একটি # বিভাগে মোড়ক দিয়ে এই ক্রমে জিনিসগুলি রাখার প্রবণতা রাখি:

বিবৃতি ব্যবহার করে

নামস্থান

শ্রেণী

ব্যক্তিগত সদস্যরা

জনসাধারণের সম্পত্তি

কন্সট্রাকটর

পাবলিক পদ্ধতি

ব্যক্তিগত পদ্ধতি


আমি ঠিক পাশাপাশি এটিও করি। ক্লাস এবং প্রাইভেট সদস্যদের মধ্যে বাদে আমার কাছে কোনও পাবলিক কনস্ট্যান্টস এবং এনামস ইত্যাদি রয়েছে
ডিজিজি

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

15

আমি আইডিজাইন বা ব্র্যাড আব্রামের ওয়েবসাইটে তালিকাভুক্ত কোডিং মানগুলি ব্যবহার করার পরামর্শ দেব । এগুলি আমি খুঁজে পেয়েছি সেরা দুটি।

ব্র্যাড বলবে ...

শ্রেণীর সদস্যকে বর্ণমালা করা এবং বিভাগগুলিতে ভাগ করা উচিত (ক্ষেত্র, নির্মাতা, বৈশিষ্ট্য, ইভেন্টস, পদ্ধতি, ব্যক্তিগত ইন্টারফেস বাস্তবায়ন, নেস্টেড প্রকারের)


3
এই লিঙ্কটি এই দিনগুলিতে কেবল আইডিজাইন হোম পৃষ্ঠাতে নিয়ে গেছে। কোডিং স্ট্যান্ডার্ডগুলি আজকাল ইমেল করা ডাউনলোডের লিঙ্কের আড়ালে লুকিয়ে আছে বলে মনে হচ্ছে # জাস্টসায়িং
লিয়াম

নির্দেশিকাগুলি যুক্তিযুক্ত হওয়া উচিত। এর পক্ষে যুক্তিটি হ'ল: ১. সুতরাং আপনি বুঝতে পেরেছেন, ২. যাতে আপনি সীমান্তরেখা, সূক্ষ্ম, দ্ব্যর্থহীন, অপ্রত্যাশিত বা বিবাদমান মামলায় রায় প্রয়োগ করতে পারেন, ৩. যাতে যখন পরিস্থিতি পরিবর্তন হয় এবং কিছু নির্দেশিকা আর প্রয়োগ না হয় তখন আপনি সামঞ্জস্য করতে পারেন।
পাবলো এইচ

6

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

public class myClass
{
#region Private Members

#endregion
#region Public Properties

#endregion

#region Constructors

#endregion
#region Public Methods

#endregion
}

এটি যাইহোক আমার কাছে বোধগম্য হয়


19
এখানে বলতে হবে (কেবল তথ্যের জন্য) যে স্টাইলিকপ অঞ্চলগুলি ব্যবহার না করার পরামর্শ দেয় (SA1124 DoNotUseRegions)
গারওয়াল্ড


1
@ জেডক্লাউড অবশ্যই, 5538 লাইনযুক্ত একটি ফাইলের মধ্যে অঞ্চলগুলি প্রয়োজনীয়, তবে এর অর্থ এই নয় যে আপনার স্বাভাবিক ফাইলগুলিতে অঞ্চল ব্যবহার করা উচিত।
ঘোস্ট

1
@ গেরওয়াল্ড: আমি মনে করি স্টাইলকপ কেবল স্টাইলকপ ব্যবহারকারীদের জন্য। এটি অনেক স্ট্যান্ডার্ডের মধ্যে একটি
জামেব

1
@ জামেব: আমি বলব, স্টাইলকপ বিধিগুলি সি # এর জন্য সর্বাধিক সাধারণ কোডিং নির্দেশিকা। যে কোনও ভাষায় কোডিংয়ের সময়, আমি সর্বদা কোডিং নির্দেশিকাগুলির সর্বাধিক সাধারণ সেটটি সন্ধান করার চেষ্টা করি এবং সেগুলি অনুসরণ করি।
গেরওয়াল্ড

5

স্টাইলকপ থেকে

ব্যক্তিগত ক্ষেত্র, পাবলিক ফিল্ড, কনস্ট্রাক্টর, সম্পত্তি, পাবলিক মেথড, প্রাইভেট পদ্ধতি methods

স্টাইলকপ এমএস নির্মান প্রক্রিয়ার অংশ হিসাবে আপনি এটি একটি ডি স্ট্যাক্ট স্ট্যান্ডার্ড হিসাবে দেখতে পারেন view


মজাদার. আপনি কি নিয়মিত স্টাইলকপ ব্যবহার করেন?
মিমকডোল

একটি প্রকল্পের জন্য হ্যাঁ, কারণ এটি এখন থেকে আবার কিছু এমএস চুক্তির কাজের জন্য ব্যবহৃত হয়। এটি খুব বিরক্তিকর হাসি
২৯:০৮

1
দীর্ঘকাল ধরে স্টাইলকপ ব্যবহার করা এবং যদি সেই সুপারিশগুলি ব্যবহার করা হয় কোডটি সত্যই আরও ভাল পঠনযোগ্য করে তোলে: কোনও শ্রেণীর .cs ফাইল খোলার সাথে সাথে আমি তাত্ক্ষণিক পাবলিক পদ্ধতিগুলি দেখতে পাই যা ব্যক্তিগতগুলির চেয়ে "আরও গুরুত্বপূর্ণ"।
সর্বজনীন হ'ল


1
"স্টাইলকপ এমএস বিল্ড প্রক্রিয়াটির অংশ" বলতে কী বোঝ? মাইক্রোসফ্ট কি সব কোডের জন্য স্টাইলকপ ব্যবহার করছে?
রিকো সুটার

5

সাধারণত আমি পরবর্তী ধরণটি অনুসরণ করার চেষ্টা করি:

  • স্থির সদস্য (সাধারণত একটি অন্য প্রসঙ্গে থাকতে হবে, অবশ্যই থ্রেড-সেফ হওয়া উচিত))
  • উদাহরণস্বরূপ সদস্য

প্রতিটি অংশে (স্থিতিশীল এবং উদাহরণ) নিম্নলিখিত সদস্য ধরণের থাকে:

  • অপারেটর (সর্বদা স্থির থাকে)
  • ক্ষেত্র (নির্মাণকারীদের আগে আরম্ভ)
  • কনস্ট্রাকটর
  • ডেস্ট্রাক্টর ( কনস্ট্রাক্টরদের অনুসরণ করার aতিহ্য )
  • বৈশিষ্ট্য
  • পদ্ধতি
  • ঘটনাবলী

তারপরে সদস্যদের দৃশ্যমান অনুসারে বাছাই করা হয় (কম থেকে আরও দৃশ্যমান):

  • ব্যক্তিগত
  • অভ্যন্তরীণ
  • অভ্যন্তরীণ সুরক্ষিত
  • রক্ষিত
  • প্রকাশ্য

অর্ডারটি কোনও ডগমা নয়: সহজ ক্লাসগুলি পড়া সহজ, তবে আরও জটিল শ্রেণিতে প্রসঙ্গ-নির্দিষ্ট গ্রুপিংয়ের প্রয়োজন হয়।


5

আমার পছন্দটি হ'ল দয়া করে আদেশ করুন এবং তারপরে নিম্নরূপভাবে দৃশ্যমানতা হ্রাস পাবে

public methods
public events
public properties

protected methods
protected events
protected properties

private methods
private events
private properties
private fields

public delegates
public interfaces
public classes
public structs

protected delegates
protected interfaces
protected classes
protected structs

private delegates
private interfaces
private classes
private structs

আমি জানি এটি স্টাইল কপ লঙ্ঘন করেছে এবং যদি কেউ আমাকে যদি কোনও কারণের ইন্টারফেসের আগে কোনও প্রকারের প্রয়োগের বিশদটি রাখেন তবে আমি যদি তা পরিবর্তন করতে ইচ্ছুক হতে পারি তবে তা সঠিক কারণ জানাতে পারি। বর্তমানে, ব্যক্তিগত সদস্যদের শেষ রাখার জন্য আমার দৃ strong় অগ্রাধিকার রয়েছে।

দ্রষ্টব্য: আমি সর্বজনীন বা সুরক্ষিত ক্ষেত্র ব্যবহার করি না।


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

1
এটি আসলে অনেক অর্থবোধ করে। আমি বাজি
ধরছি

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

4

ব্র্যাড আব্রামস দ্বারা আপনার সর্বাধিক সন্ধান করা সম্ভবত "নকশার নির্দেশিকা, পরিচালিত কোড এবং। নেট ফ্রেমওয়ার্ক" ( http://blogs.msdn.com/brada/articles/361363.aspx )

অনেক মান এখানে রূপরেখা করা হয়। প্রাসঙ্গিক বিভাগটি আমার মনে হয় ২.৮।


3

আমি এর জন্য প্রস্তাবিত একমাত্র কোডিং গাইডলাইনগুলি ক্লাস সংজ্ঞা শীর্ষে ক্ষেত্র স্থাপন করা হয়।

আমি কনস্ট্রাক্টরদের পাশে রাখি।

আমার সাধারণ মন্তব্যটি হ'ল আপনার প্রতি ফাইল প্রতি একটি শ্রেণিতে লেগে থাকা উচিত এবং যদি শ্রেণিটি যথেষ্ট বড় হয় যে বৈশিষ্ট্যগুলি বনাম পদ্ধতিগুলির সংগঠনটি একটি বড় উদ্বেগ, বর্গটি কতটা বড় এবং আপনি যেভাবেই তা পুনর্নিবিবেচনা করা উচিত? এটি কি একাধিক উদ্বেগের প্রতিনিধিত্ব করে?


3
এবং একবার আপনার অঞ্চলগুলির প্রয়োজন ... আপনি হেরে গেছেন।
হামিশ স্মিথ

3

আমি কনস্ট্রাক্টরের পাশাপাশি বেসরকারী ক্ষেত্রগুলিকে শীর্ষে রাখতে পছন্দ করি, তারপরে পাবলিক ইন্টারফেস বিটগুলি রাখি, তারপরে বেসরকারী ইন্টারফেস বিট।

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


3

আমি এটি যথাসম্ভব সহজ রাখি (আমার পক্ষে কমপক্ষে)

গণনা
ঘোষণা
কনস্ট্রাক্টরগুলি
ওভাররাইড
পদ্ধতিগুলির
বৈশিষ্ট্য
ইভেন্ট হ্যান্ডলার


2

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


আমি দৃশ্যমানতার দ্বারা পৃথক করতে অঞ্চলগুলিও ব্যবহার করি এবং আঞ্চলিক কোড বিন্যাস থাকা আমাকে সৎ রাখে। rauchy.net/regionerate
সেমিকোলন ভুলে

আমি #regions ব্যবহার করে কোন সমস্যা দেখতে পাচ্ছি না, তবে আমি প্রায়শই দেখতে পাই যে কোনও অঞ্চলে রাখার প্রলোভন দেখানো মাত্রই, আমার ক্লাসগুলি বিভক্ত করার বিষয়টি বিবেচনা করার জন্য আমাকে অনুরোধ করে।
মিকচ্যামিমো

2

আমি জানি এটি পুরানো তবে আমার আদেশটি নিম্নরূপ:

সর্বজনীন, সুরক্ষিত, ব্যক্তিগত, অভ্যন্তরীণ, বিমূর্তের ক্রম

  • ধ্রুবক
  • স্ট্যাটিক ভেরিয়েবল
  • ক্ষেত্রসমূহ
  • ঘটনাবলী
  • কন্সট্রাক্টর (গুলি)
  • পদ্ধতি
  • প্রোপার্টি
  • প্রতিনিধিদের

আমি এই জাতীয় বৈশিষ্ট্যগুলিও লিখতে চাই (শর্টহ্যান্ড পদ্ধতির পরিবর্তে)

// Some where in the fields section
private int someVariable;

// I also refrain from
// declaring variables outside of the constructor

// and some where in the properties section I do
public int SomeVariable
{
    get { return someVariable; }
    set { someVariable = value; }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.