আমি এনামগুলিতে কিছু পড়ছিলাম এবং ধ্রুবকগুলি ঘোষণার সাথে এগুলি খুব মিল খুঁজে পেয়েছি। যখন আমি এনাম বা তদ্বিপরীত চেয়ে ধ্রুবক ব্যবহার করব তখন কীভাবে জানব। এনাম ব্যবহারের কিছু সুবিধা কী কী?
আমি এনামগুলিতে কিছু পড়ছিলাম এবং ধ্রুবকগুলি ঘোষণার সাথে এগুলি খুব মিল খুঁজে পেয়েছি। যখন আমি এনাম বা তদ্বিপরীত চেয়ে ধ্রুবক ব্যবহার করব তখন কীভাবে জানব। এনাম ব্যবহারের কিছু সুবিধা কী কী?
উত্তর:
আপনি কিছু হতে পারে এমন মানগুলির একটি ব্যাপ্তি নির্ধারণ করতে চাইলে এনামগুলি ব্যবহার করুন। রঙ যেমন একটি সুস্পষ্ট উদাহরণ:
public enum Colour
{
White,
Red,
Blue
}
বা সম্ভবত কিছু জিনিস যেমন সেট: (উদাহরণ হিসাবে আমি এখানে অলস হিসাবে এখান থেকে চুরি করেছি)
[FlagsAttribute]
enum DistributedChannel
{
None = 0,
Transacted = 1,
Queued = 2,
Encrypted = 4,
Persisted = 16,
FaultTolerant = Transacted | Queued | Persisted
}
কনস্ট্যান্টগুলি পিআই এর মতো একক মানের জন্য হওয়া উচিত। পিআই মানগুলির একটি ব্যাপ্তি নেই, কেবল পিআই রয়েছে।
অন্যান্য বিষয় বিবেচনা করুন:
Type Safety"
অন্যান্য উত্তরগুলি থেকে কী অনুপস্থিত তা হ'ল এনামগুলিতে একটি পূর্ণসংখ্যার বেস টাইপ থাকে। আপনি ডিফল্টটিকে int থেকে অন্য কোনও অবিচ্ছেদ্য প্রকারের মতো চরের মতো পরিবর্তন করতে পারেন:
enum LongEnum : long {
foo,
bar,
}
আপনি বেস টাইপ থেকে স্পষ্টভাবে এবং স্পষ্টতই কাস্ট করতে পারেন, যা স্যুইচ-স্টেটমেন্টে কার্যকর useful সাবধান হোন যে কোনও এনামের জন্য বেস ধরণের কোনও মান castালতে পারে, এমনকি এনামের উপযুক্ত মান সহ কোনও সদস্য না থাকলেও। সুতরাং একটি সুইচে সর্বদা ডিফল্ট বিভাগ ব্যবহার করা ভাল ধারণা। বিটিডাব্লু।
তদতিরিক্ত, এনামগুলি ব্যবহার করা আপনাকে আরও ধরণের সুরক্ষা দেয়। আপনি যদি পদ্ধতি প্যারামিটার হিসাবে উদাহরণস্বরূপ int ধ্রুবক ব্যবহার করতে চান, তবে আমি কোনও int মান সহ পদ্ধতিটি কল করতে পারি। মঞ্জুর, কাস্টিংয়ের মাধ্যমে এটি এনামগুলির সাথেও ঘটতে পারে তবে এটি দুর্ঘটনাক্রমে ঘটবে না। সবচেয়ে খারাপ পরামিতিগুলির ক্রমকে বিভ্রান্ত করার সম্ভাবনা।
void method(int a, int b) {...}
যদি ধ্রুবক A কেবলমাত্র একটিতে যেতে পারে এবং ধ্রুবক B কেবল বিতে যেতে পারে, তবে দুটি পৃথক এনাম টাইপ ব্যবহার করে সংকলনের সময় কোনও অপব্যবহারের উদ্রেক হবে।
ধ্রুবক হ'ল একটি ভাষা বৈশিষ্ট্য যা বলে যে চলকটির মান পরিবর্তন হবে না (তাই সংকলক সেই জ্ঞানের আশেপাশে অনুকূলিতকরণ করতে পারে) যেখানে একটি এনাম একটি নির্দিষ্ট ধরণের।
ধ্রুবকগুলি কোনও ডেটা টাইপ হতে পারে তবে একটি এনাম একটি এনাম।
আমি এনাম এমন যে কোনও জায়গা ব্যবহার করব যেখানে আপনার কাছে প্রচুর বিকল্প থাকতে পারে এবং কোডটির পাঠযোগ্যতা উন্নত করতে চান। উদাহরণস্বরূপ, আপনার মান 0, 1, 2 এর মান হিসাবে বা ত্রুটি, সতর্কতা এবং তথ্য হিসাবে এনাম হিসাবে ট্রেস স্তর থাকতে পারে।
এনুমের বিটওয়াইড অপারেটর, অর্থাৎ ফন্টস্টাইল.বোল্ড | হিসাবে ব্যবহার করার ক্ষমতাও রয়েছে ফন্টস্টাইল.ইটালিক আপনাকে গা bold় এবং তির্যক ফন্ট দেবে।
রবার্টের উত্তর ছাড়াও:
নামযুক্ত মানগুলির একটি সীমাবদ্ধ সেট জন্য এনাম ব্যবহার করুন। আপনি প্রতিটি চিহ্নের পিছনে সংখ্যাসূচক মানটির বিষয়ে সত্যই চিন্তা করেন না (তবে আপনার এখনও এগুলি চাপানোর ক্ষমতা রয়েছে, যেমন কোনও উত্তরাধিকার ব্যবস্থার সাথে সামঞ্জস্যের জন্য)।
রবার্ট: হ্যাঁ, এনুমকে বিট ফিল্ড হিসাবে ব্যবহার করা যেতে পারে। পতাকা বৈশিষ্ট্যটি ব্যবহার করুন (এবং এনামের সদস্যদের উপযুক্ত সংখ্যাসূচক মান রয়েছে তা নিশ্চিত করুন)।
এসি # ধ্রুবকটি একটি ভেরিয়েবলের সমান যা এটি একটি মানকে একটি সংজ্ঞায়িত নাম দেয়। যাইহোক, একটি ধ্রুবক স্ট্যান্ডার্ড ভেরিয়েবলের থেকে পৃথক হয় কারণ একবার সংজ্ঞায়িত হয়ে গেলে ধ্রুবকের জন্য নির্ধারিত মানটি কখনই পরিবর্তন করা যায় না। ধ্রুবকগুলির প্রধান সুবিধা হ'ল স্ব-ডকুমেন্টিং কোড তৈরির পাশাপাশি তাদের একক স্থানে মূল মানগুলি ঘোষণা করার ক্ষেত্রে সহায়তা, যা মানটি আপডেট করার প্রয়োজন হয় এবং সফ্টওয়্যারটি পুনরায় সংযুক্ত করা উচিত easy
এনামুলেটর তালিকাগুলি ক্রম এবং রাজ্যগুলি সংজ্ঞায়িত করার জন্য কার্যকর, বিশেষত যখন এই রাজ্যের মধ্য দিয়ে প্রাকৃতিক অগ্রগতি ঘটে। এটি কারণ তালিকার প্রতিটি ধ্রুবককে এর নাম বা মানটি ব্যবহার করে বিন্যাস করতে এবং তুলনা করা যেতে পারে। বৈধ মানগুলির একটি সীমিত সেট সংজ্ঞায়িত করতে একটি এনামও ব্যবহার করা যেতে পারে।
enum
পরিবর্তে ব্যবহার করার সময় আমি যে জিনিসটি সহজেই খুঁজে পাই const
তা হ'ল আপনি একটিতে থাকা মানগুলির মাধ্যমে পুনরাবৃত্তি করতে পারেন, মানগুলির সাথে enum
এটি করা খুব কঠিন const
।