PDA

View Full Version : مقدمه ای بر سی شارپ : قسمت- 7



Vahid_Nasiri
شنبه 18 مرداد 1382, 00:48 صبح
دو مورد تکمیلی در مورد حلقه ها در سی شارپ :

1- هر جایی خواستید به هر دلیلی حلقه را پایان دهید می توانید از دستور break; استفاده کنید. در این حالت به صورت آنی حلقه خاتمه یافته و کدهای ادامه ی برنامه پس از حلقه اجرا می شوند.
2- نحوه ی استفاده از دستور continue : فرض کنید حلقه ی شما در راند 15 خودش است! حالا در این راند شما می خواهید یک سری از دستورات درون حلقه اجرا نشوند و حلقه به راند بعدی منتقل شده و کارش را ادامه دهد. اینجا است که از دستور continue استفاده می شود. بهتر است به یک مثال ساده در این زمینه توجه کنیم.

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آنرا درابتدا ex11 انتخاب نمایید. سپس کد زیر را درون آن بنویسید :


using System;

namespace ex11
{
class Class1
{
[STAThread]
static void Main(string[] args)
{

Console.WriteLine(
"for (int i = 1; i <= 100; i++) -> break at i==5" );
for (int i = 1; i <= 100; i++)
{
if (i == 5)
break;
Console.WriteLine(i);
}
Console.ReadLine();


Console.WriteLine(
"for (int i = 1; i <= 10; i++) -> continue if i<9" );
for (int i = 1; i <= 10; i++)
{
if (i < 9)
continue;
Console.WriteLine(i);
}
Console.ReadLine();

}
}
}


موارد تکمیلی مربوط به رد و بدل کردن مقادیر به/از کلاس ها :

در قسمت بعدی می خواهیم خاصیتی را تعریف کنیم که یک مقدار را از کاربر می گیرد و در برنامه می توان توسط قسمت های دیگر از آن استفاده کرد.

ابتدا یک متغیر عمومی باید در سطح کلاس تعریف کرد تا مقدار دریافت شده توسط set را در خود نگاه داری کند (در مورد scope متغیرها ( متغیرهای عمومی و محلی و امثال اینها) در هنگام معرفی توابع بیشتر بحث خواهد شد) . سپس از طریق کلمه ی کلیدی value مقدار دریافت شده به متغیر انتساب می یابد و چون در سطح کلاس عمومی است در تمام کلاس قابل درسترسی است.

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آنرا درابتدا ex12 انتخاب نمایید. سپس از منوی پروژه یک کلاس جدید به آن اضافه نمایید (به نام clsDate) و کد زیر را درون آن بنویسید :


using System;

namespace ex12
{
public class clsDate
{
private int Year;

public clsDate()
{
}

public int setYear
{
set
{
Year = value;
}
}

public bool IsLeapYear
{
get
{
return System.DateTime.IsLeapYear(Year);
}
}


}
}

برای استفاده از آن در متد main برنامه به صورت زیر عمل می کنیم:



using System;

namespace ex12
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
clsDate m_var = new clsDate();

m_var.setYear = 1990;

if (m_var.IsLeapYear)
Console.WriteLine("1990 is a leap year.");
else
Console.WriteLine("1990 is not a leap year.");

Console.ReadLine();
}
}
}

توضیحاتی در مورد کد فوق:

1- نحوه ی تعریف متغیر از یک کلاس جزو اساسی ترین قسمت های کار با یک کلاس محسوب می شود که در قسمت های پیشین نیز معرفی گردید.
2- هنگامی که از if استفاده می کنیم لزومی ندارد حتما بنویسیم m_var.IsLeapYear==true . همین که این خاصیت ذکر می شود در وهله ی اول true بودن آن چک خواهد شد.
3- نحوه ی مقدار دهی به یک خاصیت را هم در کد فوق ملاحظه می نمایید. در هنگام استفاده از خاصیت ها نیازی به آوردن پرانتزها () در مقابل نام آنها وجود ندارد.
4- برای مرور ، نحوه ی معرفی خاصیت ها با get نیز بیان گردید. با استفاده از set و get می توان به کلاس ها ، مقادیر متغیرها را پاس کرد و یا مقداری را دریافت نمود.