একক বা বহুবচন গণনার জন্য?


92

আপনি কি গণনার জন্য একক বা বহুবচন ব্যবহার করেন? আমি মনে করি ঘোষণায় বহুবচন দিয়ে এটি সর্বোত্তমভাবে উপলব্ধি করে

enum Weekdays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

... তবে আমি মনে করি টাইপটি ব্যবহার করার সময় এটি একবচন দ্বারা আরও বেশি অর্থবোধ করে

Weekday firstDayOfWeek = Weekday.Monday;

আমি নিয়মিত এনামস এবং পতাকা সহ বহুবচন ব্যবহার করার জন্য কোথাও একটি প্রস্তাবনা পড়েছি তবে আমি আরও কিছু উপকারিতা এবং কনস শুনতে চাই।


গণনা করা উচিত, গণনাকারী নয়।
রিড কোপসি

4
সম্পর্কিত: stackoverflow.com/questions/338156/...
Harpo

উত্তর:


92

এটি সরাসরি মাইক্রোসফ্ট থেকে এসেছে:

http://msdn.microsoft.com/en-us/library/4x252001(VS.71).aspx

বেশিরভাগ এনুম প্রকারের জন্য একক নাম ব্যবহার করুন, তবে বিম ক্ষেত্রের এনাম প্রকারের জন্য বহুবচন নাম ব্যবহার করুন।


4
নোটের সাথে বিট ক্ষেত্রগুলি বহুবচন করা উচিত।
এম ডুডলি

4
গণনা ডিজাইনের জন্য এমএসডিএন নির্দেশিকাগুলির সর্বশেষ সংস্করণটি এখানে রয়েছে: msdn.microsoft.com/en-us/library/ms229058.aspx
রডনি এস ফলি

আমি যে বইটি পড়েছি তা খুব কৃতজ্ঞ যে ফ্রেমওয়ার্ক ডিজাইনের গাইডলাইন । মূলত এটি 15+ লেখক লিখেছেন যারা বছরের পর বছর ধরে NET ফ্রেমওয়ার্কের বিকাশে সমস্ত বড় ভূমিকা পালন করেছিল। ফ্রেমওয়ার্ক এপিআইগুলি বিকাশ করার সময় বইটি আপনাকে তাদের চিন্তার প্রক্রিয়াটির অন্তর্দৃষ্টি দেয় এবং মাইক্রোসফ্টের কোনও ফ্রেমওয়ার্ক, টুলকিট ইত্যাদি নেভিগেট করার সময় এটি আপনাকে সীমান্ত রক্ষাকারী করে তোলে অনেকগুলি যদি না হয় তবে সমস্ত পাঠ্য তাদের সন্ধান করতে পারে ডক্স ওয়েবসাইট, তবে এই প্যাকেজটি এটি খুব সুন্দরভাবে আপ করে।
Lopsided

30

.NET ফ্রেমওয়ার্ক ডিজাইন গাইডলাইনস , পৃষ্ঠা 59-60 থেকে একটি সুপারিশ আসে :

না , একটি পরিগণনা জন্য একটি একবচন টাইপ নাম ব্যবহার যদি না তার মান বিট ক্ষেত্র।

public enum ConsoleColor {
  Black,
  Blue,
  Cyan,
  ...

না মান হিসাবে বিট ক্ষেত্রের সাথে একটি শুমার জন্য একটি বহুবচন প্রকার নাম ব্যবহার, এছাড়াও একটি পতাকার enum বলা হয়।

[Flags]
public enum ConsoleModifiers {
  Alt,
  Control,
  Shift
}

13

.NET ফ্রেমওয়ার্কে, বেশিরভাগ "সাধারণ" এনামগুলির (যেমন DayOfWeek) একক নাম এবং পতাকা এনামগুলি থাকে (যেমন StringSplitOptions, BindingFlags) বহুবচন নাম। এটি উপলব্ধি করে, যেহেতু একটি পতাকা এনামের মান একাধিক আইটেমকে উপস্থাপন করতে পারে তবে একটি পতাকাবিহীন এনামের জন্য, এটি কেবলমাত্র একটি আইটেমকে উপস্থাপন করতে পারে।


5

সাধারণভাবে, আমি এনাম সংজ্ঞাটিকে টাইপ সংজ্ঞা হিসাবে বিবেচনা করি, এনামের মানগুলি ধরণের বিভিন্ন মান থাকতে পারে; সুতরাং এটি একটি একক নাম পায়: enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; enum CoffeeSize { SMALL, MEDIUM, LARGE };

হ্যাঁ. আপনি যদি ক্লাস হিসাবে এনামগুলিকে বাস্তবায়নের মানসিক অভিজ্ঞতাটি করেন তবে আপনি যে ধরণের জন্য একক নাম ব্যবহার করবেন তা প্রকৃতপক্ষে প্রকাশ পাবে যে এই জাতীয় এনামগুলির জন্য একক নাম ব্যবহার করা বোধগম্য। যেমন,

struct Weekday {};

const Weekday SUNDAY;
const Weekday MONDAY;
const Weekday TUESDAY;

...

void func (Weekday *day)
{
   if (day == &SUNDAY)
       ...
}

যিনি এনামগুলিতে বহুবচন পছন্দ করেন, আপনি কি নামটি রাখবেন struct Weekdays?


2

সাধারণভাবে, আমি এনাম সংজ্ঞাটিকে টাইপ সংজ্ঞা হিসাবে বিবেচনা করি, এনামের মানগুলি ধরণের বিভিন্ন মান থাকতে পারে; সুতরাং এটি একটি একক নাম পায়:

enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };

enum CoffeeSize { SMALL, MEDIUM, LARGE };

2

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


তবে এর আসলে কারণ আছে কি? আমরা 'আমি' দিয়ে ইন্টারফেস উপসর্গ করি। উপসর্গটি কেন 'ই' এর সাথে এনাম এবং 'এফ' দিয়ে পতাকা লাগায় না। এটি এটি স্ফটিক পরিষ্কার করতে হবে। মনে রাখবেন যে আমি অন্য কোনও কিছুর উপসর্গ পছন্দ করি না তবে এগুলি ইন্টারফেসের মতো বিশেষ ক্ষেত্রে যেখানে টাইপটি কখনই বদলাবে না।

0

এটি বিষয়ভিত্তিক এবং আপনি যা ব্যবহার করেন তা বিবেচনা করে না, যতক্ষণ আপনি সামঞ্জস্য বজায় রাখেন (ব্যক্তিগতভাবে আমি আমার এসকিএল সম্মেলনগুলি থেকে এটি বহন হিসাবে একবচন ব্যবহার করি)


11
এটা ব্যাপার। সম্মেলনগুলি পঠনযোগ্যতা এবং রক্ষণাবেক্ষণের প্রচার করে। ব্যক্তিগত ধারাবাহিকতা প্রচলিত ধারাবাহিকতার সাথে তুলনা করে না।
গ্রেনেড

4
প্রতিটি লাইব্রেরির নিজস্ব "বিষয়গত" মতামত থাকলে সামঞ্জস্য থাকা শক্ত to
পল বিগগার

4
আমার ধারণা মাইক্রোসফ্ট যেমন বলে একক ব্যবহার করে, আমাদের সকলেরই একক ব্যবহার করা উচিত। নাহ। আপনি যতক্ষণ না আপনার বহুত্বকরণ এবং একককরণ (?) এর সাথে সামঞ্জস্য রয়েছেন ততক্ষণ তা সত্যিই কিছু যায় আসে না।
জয়মল চৌহান

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