একটি এনাম ভেরিয়েবল, কেউ কি জানেন যে এটি সর্বদা প্রথম উপাদানটির ডিফল্ট হয়?
একটি এনাম ভেরিয়েবল, কেউ কি জানেন যে এটি সর্বদা প্রথম উপাদানটির ডিফল্ট হয়?
উত্তর:
এটি গণনার সদস্য যেটিই প্রতিনিধিত্ব করে 0
। বিশেষ করে ডকুমেন্টেশন থেকে :
ডিফল্ট মান
enum E
হ'ল এক্সপ্রেশন দ্বারা উত্পাদিত মান(E)0
।
উদাহরণ হিসাবে, নিম্নলিখিত এনাম নিন:
enum E
{
Foo, Bar, Baz, Quux
}
ডিফল্ট মানগুলিকে ওভাররাইড না করে, মুদ্রণ default(E)
ফিরে আসে Foo
কারণ এটি প্রথমটি হয়।
যাইহোক, এনামের ক্ষেত্রে প্রথম সদস্য প্রতিনিধিত্ব করেন এমনটি সর্বদা হয় না0
। উদাহরণস্বরূপ, আপনি যদি এটি করেন:
enum F
{
// Give each element a custom value
Foo = 1, Bar = 2, Baz = 3, Quux = 0
}
মুদ্রণ default(F)
আপনাকে দেবে Quux
, না Foo
।
এনামের উপাদানগুলির মধ্যে যদি কোনওটিরই মিল G
না থাকে 0
:
enum G
{
Foo = 1, Bar = 2, Baz = 3, Quux = 4
}
default(G)
আক্ষরিক অর্থে ফিরে আসে 0
, যদিও এর ধরণটি এখনও অব্যাহত রয়েছে G
(উপরের ডক্স অনুসারে, প্রদত্ত এনাম টাইপের জন্য একটি কাস্ট)।
'\0'
বা default(char)
, যা থেকে অত্যন্ত অসম্ভাব্য default(char)
NUL চরিত্র যা গৃহস্থালির কাজ কোড 0. সাথে সঙ্গতিপূর্ণ
DefaultValue
অ্যাট্রিবিউট - ভালো কিছু System.ComponentModel.DefaultValue(MyEnum.Blah)
--would আচরণকে সংশোধন default(MyEnum)
কিন্তু এটি এখনও উৎপাদ 0. একটা জন্য একটি বিমূর্ততা তৈরি করতে কোন উপায় আছে কি enum
তার ডিফল্ট মান আশেপাশে আছেন?
আমি মনে করি একটি এনামের মানগুলির ক্রমের উপর নির্ভর করা এবং প্রথমটি সর্বদা ডিফল্ট বলে ধরে নেওয়া বেশ বিপজ্জনক আপনি যদি ডিফল্ট মান রক্ষা করতে উদ্বিগ্ন হন তবে এটি ভাল অনুশীলন হবে।
enum E
{
Foo = 0, Bar, Baz, Quux
}
অন্যথায়, এটি যা লাগে তা হ'ল অর্ডারটির অযত্নিক অশোধক এবং আপনার সম্পূর্ণ ভিন্ন ডিফল্ট।
Foo
পরে রাখেন এবং 0 এর মান হবে এবং ফিরে আসবে । এটি এত নির্বোধ এবং পাল্টা প্রতিরোধী তবে এটি সত্য :(Bar
Foo
Bar
E.Foo == E.Bar
true