داده enum در سی شارپ
ابتدا یک تعریف از داده enum در سی شارپ بیان می کنیم که مطمئنا نیاز به دنبال کردن این پست داریم تا مفهوم آن را به طور کامل متوجه شویم. بنابراین ما از مثال ماشین حساب برای یادگیری ان داده استفاده کردیم.
تعریف enum
نوعی داده شمارشی ساده هست و اگر ما بخواهیم چند مقدار ثابت که با یکدیگر مرتبط هستند در برنامه استفاده کنیم از داده enum در سی شارپ استفاده می کنیم که باعث خوانایی بیشتر و بالا رفتن سرعت کار برنامه نویس می شود. برای استفاده از enum از فضای نام System.Collections استفاده می شود. برای ایجاد آن ابتدا کلید واژه ی enum و به دنبال آن اسم مورد نظرتون و همچنین اسمی مختص هر یک از آیتم های لیست را تایپ کنید.
آموزش enum در قالب مثال
سعی کردیم پروژه ماشین حساب را هر دفعه بهتر کنیم الان وقتی پروژه را با دستور switch نوشتیم ، بهتر از روش های قبلی بود امّا اینجا هم یک مشکلی که هست مثلا برنامه نویس به جای نوشتن Mul که عملیات ضرب را انجام می دهد اشتباهی Mlu را وارد کند یا حروف بزرگ را کوچک و حروف کوچک را بزرگ وارد کند وقتی برنامه را اجرا می کنیم نتیجه نادرستی به ما می دهد:
1 2 3 4 |
<span style="font-family: tahoma, arial, helvetica, sans-serif;">public int Run(int Number1, int Number2, string op) { int Result = 0; switch(op)</span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<span style="font-family: tahoma, arial, helvetica, sans-serif;"> { case "Sum":Result = Number1 + Number2; break; case "Min":Result = Number1 - Number2; break; case "<span style="color: #3366ff;">Mul</span>":Result = Number1 * Number2; break; case "Div":Result = Number1 / Number2; break; } return Result; } int N1; int N2; private void btnMul_Click(object sender, EventArgs e) { Calculator Calc = new Calculator(); N1 = int.Parse(textBox1.Text); N2 = int.Parse(textBox2.Text); textBox3.Text = Calc.Run(N1,N2,"<span style="color: #3366ff;">Mlu</span>").ToString(); }</span> |
برنامه را اجرا می کنیم:
این روش نوشتن پروژه از پروژه اولی که نوشتیم سخت تر شد چون برنامه نویس باید مدام داخل کلاس برود و آن چیزی را که لازم دارد کپی کند و در اینجا قرار دهد یا این که خیلی توی نوشتن دقت کند.
برای رفع چنین مشکلی یک کلاس دیگر ایجاد می کنم و داده enum را داخلش می نویسم.
یک کلاس دیگر تعریف می کنیم بنام Typeop و وقتی که ایجاد شد نام class را پاک می کنیم و به جای آن enum می نویسیم.
نام کلاس را پاک کردیم و به جای آن enum می نویسیم قبل از enum هم حتما public قرار می دهیم:
داخل کلاس Calculator رفته و به جای اینکه op را از نوع int یا string در نظر بگیریم از نوع Typeop قرار می دهیم:
نحوه کدنویسی:
1 |
class Calculator
{
public int Run(int Number1, int Number2, Typeop op)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<span style="font-family: tahoma, arial, helvetica, sans-serif;">{ int Result = 0; switch(op) { case <span style="color: #3366ff;">Typeop</span>.Sum:Result = Number1 + Number2; break; case <span style="color: #3366ff;">Typeop</span>.Min:Result = Number1 - Number2; break; case <span style="color: #3366ff;">Typeop</span>.Mul:Result = Number1 * Number2; break; case <span style="color: #3366ff;">Typeop</span>.Div:Result = Number1 / Number2; break; } return Result; } } int N1; int N2; private void btnSum_Click(object sender, EventArgs e) { <span style="color: #3366ff;"> Calculator Calc = new Calculator(); </span> N1 = int.Parse(textBox1.Text); N2 = int.Parse(textBox2.Text); textBox3.Text = Calc.Run(N1, N2, <span style="color: #3366ff;">Typeop</span>.Sum).ToString(); } private void btnMin_Click(object sender, EventArgs e { Calculator Calc = new Calculator(); N1 = int.Parse(textBox1.Text); N2 = int.Parse(textBox2.Text); textBox3.Text = Calc.Run(N1, N2, <span style="color: #3366ff;">Typeop</span>.Min).ToString(); } private void btnMul _Click(object sender, EventArgs e) { Calculator Calc = new Calculator(); N1 = int.Parse(textBox1.Text); N2 = int.Parse(textBox2.Text); textBox3.Text = Calc.Run(N1,N2,<span style="color: #3366ff;">Typeop</span>.Mul).ToString(); } private void btnDiv_Click(object sender, EventArgs e) { Calculator Calc = new Calculator(); N1 = int.Parse(textBox1.Text); N2 = int.Parse(textBox2.Text); textBox3.Text = Calc.Run(N1, N2, <span style="color: #3366ff;">Typeop</span>.Div).ToString(); }</span> |
اگر دقت کنیم متوجه می شویم که برنامه نویس دیگر اشتباه نمی کند و سرعت نوشتن هم میرود بالا این چیزها را باید در نظر داشته باشین که از داده enum بتوانید داخل برنامه را استفاده کنید.
امیدواریم به خوبی با این نوع داده آشنا شده باشید. در آموزش بعدی به تابع سازنده و مخرب در سی شارپ می پردازیم.
اگر سوال یا انتقادی دارید زیر همین پست در قسمت دیدگاه ها ثبت کنید.
خیلی ممنون بابت اموزش زیباتون
سلام و وقت بخیر
و تشکر فراوان بابت این آموزش های خوب و روان عالی
این قسمت از کد به چه معنا هست :
Typeop.Min)