C# گنتی

C Gnty



C# وہ پروگرامنگ لینگویج ہے جو پروگراموں، ویب سائٹس، اینڈرائیڈ ایپلی کیشنز، گیمز اور بہت کچھ تیار کرنے کے لیے استعمال ہوتی ہے۔ C# مختلف لائبریریوں اور فریم ورک کو سپورٹ کرتا ہے جن میں بلٹ ان فنکشنز ہوتے ہیں۔ Enum ایک شمار ہے، یہ ایک کلاس ہے۔ ایک کلاس میں مختلف ڈیٹا کی اقسام اور افعال ہوتے ہیں، ایک ڈیٹا ڈھانچہ، جس میں مختلف متغیرات ہوتے ہیں۔ شمار خاص طور پر اس وقت مفید ہوتا ہے جب ہم کمپائل کے وقت تمام متغیرات کو جانتے ہوں جو صارف اس میں ڈیٹا کی اقسام کی وضاحت کرتا ہے۔ Enum مختلف اقدار پر مشتمل ہے اور ان اقدار کو تبدیل نہیں کیا جا سکتا۔ اقدار کو کوڈ میں بازیافت اور استعمال کیا جاسکتا ہے لیکن ہم رن ٹائم پر اقدار کو تبدیل نہیں کرسکتے ہیں یہ صرف پڑھنے کے قابل اور ناقابل تبدیلی ہیں۔ شمار اس میں موجود تمام ڈیٹا کو ایک سٹرنگ کے طور پر دیکھتا ہے، اگر ہم انٹیجر ویلیو استعمال کرنا چاہتے ہیں تو ہمیں کاسٹ ٹائپ کرنے کی ضرورت ہے۔ گنتی مفید ہے کیونکہ وہ کم میموری اور جگہ لیتے ہیں۔

نحو







enum E_Name { قدر_1، قدر_2، قدر_3،... } ;


یا



enum E_Name { قدر_1 = 3. 4 , ویلیو_2 = 90 , ویلیو_3 = 8 ،…. } ;


وصف 'enum' گنتی کی وضاحت کرنے والا کلیدی لفظ ہے۔ جب بھی ہمیں صارف کے بیان کردہ ڈیٹا کی قسموں کی ضرورت ہو، ' enum' مطلوبہ الفاظ کو صارف کی وضاحت کردہ ڈیٹا کی قسم بنانے کے لیے استعمال کیا جاتا ہے۔ ' ای_نام' enum کلاس کا نام ہے۔ اس کلاس کے اندر گھوبگھرالی منحنی خطوط وحدانی اس میں تمام پیرامیٹرز اور اقدار پر مشتمل ہوں گے۔ ہم صرف دلائل لکھ سکتے ہیں اور مرتب کرنے والا انہیں قدریں تفویض کرے گا۔ پہلے سے طے شدہ طور پر، انڈیکس 0 میں پہلے ویلیو اسٹورز سے شروع ہوتا ہے اور اگلا 1 پر اور اسی طرح۔



آرگیومینٹس کے ڈیٹا ٹائپ پر کوئی پابندی نہیں ہے، ہم انٹیجر ویلیوز، فلوٹنگ پوائنٹ ویلیوز، کریکٹر، بولین یا سٹرنگ تفویض کر سکتے ہیں۔ لیکن اگر ہم ڈیٹا کی اقسام کو قدروں کو تفویض نہیں کرتے ہیں، تو یہ خود بخود انہیں مستقل قدر تفویض کر دے گا جہاں وہ محفوظ ہیں۔





اقسام

C# زبان میں، گنتی کی دو قسمیں ہیں۔ یہ ذیل میں درج ہیں:

    • سادہ گنتی
    • پرچم کی گنتی

سادہ گنتی

اس زمرے میں، 'enum' کلاس کے اراکین ایک ہی قدر پر مشتمل ہیں۔



پرچم کی گنتی

اس زمرے میں، فلیگ اینوم کلاس کا ممبر بٹ وائز آپریٹر کا استعمال کرتے ہوئے یا OR (|) کا استعمال کرتے ہوئے ایک سے زیادہ اقدار یا ایک سے زیادہ اقدار پر مشتمل ہے۔

مثال 1:

اس مثال میں، ہم سیکھیں گے کہ ہم کس طرح سادہ 'enum' کلاس کا استعمال کر سکتے ہیں اور اقدار کو متغیرات کو تفویض کیے بغیر دوبارہ حاصل کر سکتے ہیں۔


C# پروگرامنگ زبان میں کوڈنگ کے لیے، ہمیں پہلے نیا پروجیکٹ بنانا ہوگا اور پھر کوڈنگ شروع کرنا ہوگی۔ جب ہم کنسول ایپلی کیشن بنانا چاہتے ہیں تو ہمیں کنسول ایپلی کیشن C# فریم ورک کا انتخاب کرنا چاہیے جو خود بخود کلاس اور مین() فنکشن لکھے گا۔ کوڈ میں اوپر دی گئی سادہ اصطلاح 'enum' کو استعمال کرنے کے لیے، ہم انٹرنل کلاس 'پروگرام' کی وضاحت اور ابتدا کریں گے۔ جیسا کہ enum کلیدی لفظ ہے اور enum کے بعد اگلا لفظ 'fruit_names' ہے۔ گھوبگھرالی منحنی خطوط وحدانی کے اندر، ہم اپنی مطلوبہ فہرست کی وضاحت کرتے ہیں۔ یہاں، enum کلاس میں چار پھلوں کے نام ہیں۔ ہم مین () طریقہ کے اندر موجود تمام فنکشنز کو کال کرتے ہیں۔ static main() کے اندر، ہم ایک کے بعد ایک تمام enum ویلیوز دکھائیں گے۔ اس کوڈ میں، ہم صرف enum دلائل لکھتے ہیں، اقدار نہیں. لہذا، یہ خود بخود انہیں اشاریہ جات تفویض کرے گا جہاں وہ قدر کے طور پر محفوظ ہیں۔

Console.writeline() فنکشن آؤٹ پٹ اسکرین پر لکھنے کے لیے استعمال ہوتا ہے اور پیغام پیش کرنے کے بعد، یہ کرسر کو اگلی لائن پر لے جاتا ہے۔ اس بیان کے اندر، ایک پیغام لکھیں اور اسے '+' نشان کے ساتھ جوڑیں تاکہ اس متعین پیغام کو قدر کے ساتھ دکھایا جائے۔ کنکینٹ کرنے کے بعد 'enum name' ٹائپ کریں اور مخصوص قسم کے 'enum' کو ایڈریس کرنے کے لیے (.) استعمال کریں: fruit_names.Apple۔ اس کے بعد، اگلے بیان میں، دوبارہ (+) نشان کو استعمال کریں تاکہ اس قسم کو پیغام اور انڈیکس کے ساتھ جوڑیں جہاں یہ محفوظ ہے۔ انڈیکس حاصل کرنے کے لیے، ہمیں سب سے پہلے اسے ٹائپ کاسٹنگ کرکے ایک عدد میں تبدیل کرنا ہوگا۔ C# قسم میں، کاسٹنگ صرف قوسین کا استعمال کرکے کی جاتی ہے۔ قوسین کے اندر، ڈیٹا ٹائپ لکھیں جس میں ہم ٹائپ کاسٹ کرنا چاہتے ہیں۔ قوسین کے باہر متغیر کا نام لکھیں یعنی (int)var_name۔ اس طرح، ہم ایک اینوم ویلیو اور انڈیکس کے ساتھ پیغام حاصل کر سکتے ہیں جہاں اسے ذخیرہ کیا جا رہا ہے۔

یہ تین بار دہرائیں؛ صرف پیغام اور اینوم کی قسم کو تبدیل کریں۔ گنتی سے کوڈ اچھا اور صاف نظر آتا ہے۔ Console.ReadKey() فنکشن کنسول کو اس وقت تک فعال رکھے گا جب تک ہم اسے بند نہیں کر دیتے۔ اگر ہم اس بیان کو استعمال نہیں کرتے ہیں تو، کنسول ایک بار پلک جھپکتا ہے اور پھر یہ غائب ہو جائے گا۔

مثال 2:

اس پروگرام میں، ہم کلاس کی صفات کو مختلف قدریں تفویض کرکے سادہ 'enum' کلاس کو نافذ کریں گے۔


دوسری مثال میں، ہم نے دوبارہ کنسول ایپلیکیشن کے لیے ایک پروجیکٹ بنایا اور انٹرنل کلاس 'پروگرام' کے اندر کی ورڈ 'enum' کے ساتھ ایک گنتی کی وضاحت کی۔ اس بار اس میں مختلف اقدار کے ساتھ کلاس 'آئٹمز' شامل ہیں۔ مین () فنکشن کے اندر، ہم اینوم کلاس 'آئٹمز' کے تمام عناصر تک رسائی حاصل کریں گے۔ آئیے console.writeLine() طریقہ استعمال کریں۔ یہ اس میں موجود ہر چیز کو ظاہر کرے گا۔ سب سے پہلے، ایک پیغام ڈسپلے کریں، پھر دوبارہ Console.WriteLine() فنکشن کو کال کریں تاکہ پہلے آئٹم کو مقدار کے ساتھ دکھایا جائے۔ ایک متن کی وضاحت کریں جسے ہم ٹرمینل پر ڈسپلے کرنا چاہتے ہیں اور اسے آئٹمز کرسیوں کے ساتھ جوڑنا چاہتے ہیں۔ اسے اینوم کلاس 'آئٹمز' کی پہلی آئٹم (کرسیاں) ملیں گی۔ اس آئٹم کی مقدار حاصل کرنے کے لیے ہمیں کاسٹنگ کرنے کی ضرورت ہے کیونکہ enum کلاس میں ڈیٹا سٹرنگ کی شکل میں ہوتا ہے۔ لہذا، ان کی اقدار تک رسائی کے لیے ہم پہلے کاسٹ ٹائپ کرتے ہیں۔ 'کرسیوں' کی قدر حاصل کرنے کے لیے، (int)items.chairs کی طرح کاسٹ کریں۔ بصورت دیگر، ہمیں صرف شے 'کرسیاں' ملیں گی اس کی قیمت نہیں۔ یہاں، اگر ہم نے دیکھا، علامتیں '\n' اور '\t' استعمال ہوتی ہیں۔ '\t' استعمال کرنے سے، ہم ایک ٹیب کی جگہ دیتے ہیں اور '\n' کا استعمال کرتے ہوئے ہم کرسر کو اگلی لائن میں لے جائیں گے۔ اس عمل کو دو بار دہرائیں۔ ہمیں صرف enum اقدار کو اپ ڈیٹ کرنا ہے۔ آخر میں، کنسول کو فعال رکھنے کے لیے صرف console.ReadKey() لکھیں تاکہ ہم آؤٹ پٹ دیکھ سکیں۔

مثال 3:

ہم اس منظر نامے میں 'پرچم' اینوم کو استعمال کرنے جا رہے ہیں۔


سادہ گنتی میں، ہم انوم کلاس کے ممبر کو صرف ایک قدر تفویض کر سکتے ہیں۔ لیکن جھنڈے کی گنتی کے ساتھ، ہم اینوم کلاس کے ایک ممبر کو ایک سے زیادہ ویلیو تفویض کر سکتے ہیں۔ اس قسم کی گنتی اس وقت مددگار ثابت ہوتی ہے جب ہم مختلف انتخاب سے نمٹتے ہیں اور جب ہمارے پاس ایک سے زیادہ قدر ہوتی ہے۔ فلیگ انیومریشن استعمال کرنے کے لیے، اینوم کلاس کی وضاحت کرنے سے پہلے، ہمیں [جھنڈے] لکھنا ہوگا اور پھر اینوم کلاس 'flag_example' لکھنا ہوگا۔ اب، اس کلاس کے اندر، ہم آسانی سے ایک ممبر کو ایک سے زیادہ ویلیو تفویض کر سکتے ہیں۔ اس مثال میں، ہم نے انتساب 'ڈرائیور' کو دو قدریں تفویض کیں اور (|) آپریٹر کا استعمال کرتے ہوئے دونوں قدروں کو الگ کیا۔ پھر، مین() فنکشن میں ایک متغیر 'var flags' کا اعلان کریں۔ کنسول پر ایک سے زیادہ آئٹمز دکھانے کے لیے، استعمال کریں یا (|) آپریٹر اور پھر انوم آئٹمز کو کلاس کے نام اور آئٹم کے نام کے ساتھ کال کریں۔ پیغام دکھانے کے لیے، Console.WriteLine() طریقہ استعمال کریں۔ جھنڈے کی قدر کی نمائندگی کرنے کے لیے، دوسرے کنسول میں 'جھنڈا' لکھیں۔ Write()۔ اگلے بیان میں Console.ReadKey() فنکشن کہا جاتا ہے جو کنسول کو اس وقت تک کھلا رکھے گا جب تک کہ ہم اسے بند نہ کر دیں۔

نتیجہ

اس گائیڈ میں، ہم نے گنتی کے بارے میں سیکھا ہے، یہ کیا ہے اور ہم اسے C# زبان میں کیسے استعمال کر سکتے ہیں۔ گنتی کوڈ کو آسان اور پڑھنے کے قابل بناتی ہے۔ کیونکہ enum کلاس میں اقدار کو تبدیل نہیں کیا جا سکتا۔ یہ ہمیں فوائد فراہم کرتا ہے جب ہم اس قسم کے ڈیٹا سے نمٹ رہے ہوتے ہیں جس میں اقدار کو تبدیل کرنے کی ضرورت نہیں ہوتی ہے۔ ہم نے مختلف کوڈز کی مدد سے نحو اور گنتی کی اقسام پر تبادلہ خیال کیا ہے۔ گنتی کم میموری لیتی ہے اور استعمال میں آسان ہے۔