c# - Enum নামকরণ কনভেনশন - বহুবচন




5 Answers

Enum যদি বিট ক্ষেত্রগুলিকে প্রতিনিধিত্ব না করে তবে FlagsAttribute এর জন্য একক ব্যবহার করে সুপারিশ করে ( FlagsAttribute ব্যবহার করুন)। এনমনারেশন টাইপ নামকরণ কনভেনশনগুলি দেখুন (মাইক্রোসফটের নামকরণ নির্দেশিকাগুলির একটি উপসেট)।

আপনার স্পষ্টতা সাড়া, আমি নিম্নলিখিত যে কোনও সঙ্গে ভুল দেখতে না:

public enum OrderStatus { Pending, Fulfilled, Error };

public class SomeClass { 
    public OrderStatus OrderStatus { get; set; }
}

অথবা

public enum OrderStatus { Pending, Fulfilled, Error };

public class SomeClass {
    public OrderStatus Status { get; set; }
}

আমি অনুরূপ পড়ার সত্ত্বেও এই প্রশ্ন জিজ্ঞাসা করছি কিন্তু এন এন এবং মিলিত সম্পত্তিটির জন্য সি # নামকরণ কনভেনশনে যা চাই তা ঠিক নয়

আমি বহুবচন মধ্যে enums নাম এবং তারপর একবচন হিসাবে তাদের 'ব্যবহার' একটি প্রবণতা আছে খুঁজে পাওয়া যায় নি, উদাহরণ:

public enum EntityTypes {
  Type1, Type2
}

public class SomeClass {
  /*
    some codes
  */

  public EntityTypes EntityType {get; set;}

}

অবশ্যই এটি কাজ করে এবং এটি আমার শৈলী, কিন্তু কেউ কি এই সম্মেলনের সঙ্গে সম্ভাব্য সমস্যা খুঁজে পেতে পারে? আমার "স্থিতি" শব্দটির নাম "স্থিতি" আছে যদিও:

public enum OrderStatuses {
  Pending, Fulfilled, Error, Blah, Blah
}

public class SomeClass {
  /*
    some codes
  */

  public OrderStatuses OrderStatus {get; set;}

}

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

আমি সম্ভবত আমার সমস্ত enum বৈশিষ্ট্যগুলি প্রকাশ করতে পারি না ("স্থিতি" বলুন) "MyStatus" হিসাবে।

আমার প্রশ্ন: যে কেউ উপরে বর্ণিত আমার সম্মেলনের সঙ্গে সম্ভাব্য সমস্যা খুঁজে পেতে পারেন? এটা ভাল অনুশীলন সম্পর্কে না।

প্রশ্ন rephrase:

আচ্ছা, আমার মনে হয় আমি এই প্রশ্নটি জিজ্ঞেস করবো: কেউ কি এনাম টাইপের নামকরণের একটি ভাল জেনারিক উপায় বের করতে পারে যেমন, যখন ব্যবহার করা হয়, তখন enum 'instance' এর নামকরণ করা খুব সোজা হবে?




পরিস্থিতি সত্যিই বহুবচন প্রযোজ্য।

একটি enum কিছু বা অন্য একটি বৈশিষ্ট্য দেখায়। আমি একটি উদাহরণ দিতে হবে:

enum Humour
{
  Irony,
  Sarcasm,
  Slapstick,
  Nothing
}

আপনি এক ধরনের থাকতে পারেন, তবে বহুবচন পরিবর্তে এটি একাধিকতে মনে করার চেষ্টা করুন:

Humour.Irony | Humour.Sarcasm

বরং

Humours { Irony, Sarcasm }

আপনি হাস্যরস একটি ধারনা আছে, আপনি humours একটি ধারনা নেই।




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

public enum PersonTypesEnum {
    smart,
    sad,
    funny,
    angry
}


public class Person {   
    public PersonTypesEnum PersonType {get; set;}
}

কেউ কি কখনও enum এবং কি এর উদাহরণ কি বিভ্রান্ত হবে।




একটু দেরিতে আসছে ...

আপনার প্রশ্নের এবং আপনার উল্লেখ করা একটি (যা আমি জিজ্ঞাসা ;-) মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য আছে:

আপনি শ্রেণী থেকে enum সংজ্ঞাটি রাখুন, যা আপনাকে enum এবং সম্পত্তিটির জন্য একই নাম রাখতে দেয়:

public enum EntityType { 
  Type1, Type2 
} 

public class SomeClass { 
  public EntityType EntityType {get; set;} // This is legal

}

এই ক্ষেত্রে, আমি এমএস নির্দেশিকা অনুসরণ করব এবং enum (পতাকাগুলির জন্য বহুবচন) জন্য একটি একক নাম ব্যবহার করব। এটা probaby সহজতম সমাধান।

আমার সমস্যা ( অন্য প্রশ্নের মধ্যে ) যখন enum শ্রেণীকক্ষের মধ্যে সংজ্ঞায়িত করা হয়, Enum ঠিক ঠিক নামে নামক একটি সম্পত্তি ব্যবহার প্রতিরোধ।




অন্য থ্রেড সি # এননাম এবং মিলে যাওয়া সম্পত্তির জন্য নামকরণের কনভেনশন কেউ আমাকে মনে করে যে এটি একটি খুব ভাল ধারণা:

"আমি জানি যে আমার পরামর্শটি .NET নামকরণ কনভেনশনগুলির বিরুদ্ধে যায়, তবে আমি ব্যক্তিগতভাবে 'ই' এবং 'এফ' দিয়ে এনম ফ্ল্যাগগুলি (যেমন আমরা 'আমি' দিয়ে প্রিফিক্স ইন্টারফেসের অনুরূপ) সাথে ম্যানুয়ালগুলি উপসর্গ করে থাকি।"




Related

c# .net enums naming-conventions plural