PDA

View Full Version : دستورات Get ,Set,foreach



miracle
دوشنبه 28 اسفند 1385, 14:40 عصر
چرا وقتی دستور Foreach رو به این صورت به کار می برم خطا می گیره




string str;
foreach(str in arraylist)

ولی وقتی تو خود str,foreach رو تعریف می کنم برنامه اجرا میشه؟
****

********
دستورات Get و Set رو هم توضیح بدید...ممنون

rasoul_ras
دوشنبه 28 اسفند 1385, 16:58 عصر
فرمت این دستور اینه

hdv212
دوشنبه 28 اسفند 1385, 20:43 عصر
در مورد دستور foreach، شما باید متغیرتون رو در همون داخل پرانتز تعریف کنید(باید Local باشه)
در مورد کلمات کلیدی get و set هم بگم که این دو برای تعریف و بکار گیری خواص در سی شارپ استفاده میشه ..
مثال :
int a;
int Get_a
{
get
{
return a;
}
}
در مثال بالا پرارتی Get_a، مقدار متغیر a رو برمیگردونه (توسط کلمه ی کلیدی return)

int Set_a
{
set
{
a = value;
}
}
در پراپرتی Set_a، مقدار جدید رو در متغیر a قرار میده (توسط کلمه ی کلیدی value)
موفق باشید

Amir Oveisi
سه شنبه 29 اسفند 1385, 00:35 صبح
در ضمن اون متغیری که تعریف میکنین بصورت Local دفت داشته باشین که read-only هستش و نمیتونین مقدارش رو تغییر بدین

miracle
سه شنبه 29 اسفند 1385, 01:27 صبح
چون"str" لوکال هست فقط تو حلقه خودش(foreach) قابل تغییره?

Amir Oveisi
سه شنبه 29 اسفند 1385, 01:29 صبح
نه دوست عزیز
str کلا read-only میشه تو foreach و قابل تغییر نیست

miracle
سه شنبه 29 اسفند 1385, 16:24 عصر
private int Hour
{
get
{
return dtpHour.Value.Hour;
}
set
{
dtpHour.Value = new DateTime(
DateTime.Now.Year,
DateTime.Now.Month, DateTime.Now.Day, value, 0, 0);
label1.Text = "at" + value + ":00 matt is ";
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Hour = DateTime.Now.Hour; *

}
private void dtpHour_ValueChanged(object sender, EventArgs e)
{
this.Hour = dtpHour.Value.Hour**;
}

}
}
*This چی هست....چون پراپرتیhourسمت چپ تساوی قرار داره فقط set فراخوانی میشه؟
** می دونم dpthour یه خصوصیت value داره اما این hour چی هست؟مربوط به value هست؟اگر مربوط به value هست یعنی خود خصوصیت value هم میتونه شامل یه خصوصیت دیگه باشه؟!؟

dpthour=datetimepicker

Amir Oveisi
سه شنبه 29 اسفند 1385, 23:34 عصر
This در واقع اینو میگه که هر Object از نوع این کلاس که داره فراخونی میکنه اینارو به جای This بشینه (یه اشاره گر به Object از نوع این کلاس )

Hour هم یه property هست که بالا تعریف شده
dpthour خصوصیت value نداره! dpthour در واقع یه object از نوع DateTime هست که اینجا تو کدها نوشته نشده ( نمیدونم چرا! )

value هم یه کلمه کلیدیه که تو عمل انتصاب به عملوند سمت راست گفته میشه.

توصیه میکنم این مقذمات رو از e-book های موجود تو سایت مطالعه کنین دوست عزیز
موفق باشید

miracle
سه شنبه 29 اسفند 1385, 23:51 عصر
ممنون از راهنماییتون...از ebook استفاده کردم ولی فعلا این فصلی رو که دارم می خونم ،این موارد رو زیاد توضیح نداده ...منم خب می خوام بدونم این this , value جیه..هنوز به قسمت کلاس و..نرسیدم ولی یه جورایی مثالهاش رو زده...فقط یه سوال...پس چرا تو ویژگی های dpthour ویژگی value بود؟

Amir Oveisi
سه شنبه 29 اسفند 1385, 23:58 عصر
اون Value با value که من گفتم فرق داره
اون جزو property های کلاس DateTime باید باشه
به بزرگ و کوچیک بودن v دقت کنید!!! Value و value !!!
موفق باشید