PDA

View Full Version : سوال: تعریف آرایه ای که در دو بلاک مختلف استفاده می شود اما طول آن در یلاک اول مشخص میشود



csharpdoost
جمعه 20 بهمن 1391, 14:50 عصر
سلام.
چطوری میشه یه آرایه را طوری تعریف کنیم که در دو بلاک جدا از هم استفاده بشه. اما طول آن در بلاک اول مشخص میشود.واضحتر بگم دو تا if جدا از هم دارم . میخوام یه ارایه را طوری تعریف کنم که در هر دو if بتونم ازش استفاده کنم. اما طول اون در if اول مشخص میشه.
مسلما این ارایه یه بار new میشه. که باید قبل از هر دو بلاک باشه. و طولش هم همونجا باید مشخص بشه.
شما فکر بهتری دارید؟

the king
جمعه 20 بهمن 1391, 14:55 عصر
سلام.
چطوری میشه یه آرایه را طوری تعریف کنیم که در دو بلاک جدا از هم استفاده بشه. اما طول آن در بلاک اول مشخص میشود.واضحتر بگم دو تا if جدا از هم دارم . میخوام یه ارایه را طوری تعریف کنم که در هر دو if بتونم ازش استفاده کنم. اما طول اون در if اول مشخص میشه.
مسلما این ارایه یه بار new میشه. که باید قبل از هر دو بلاک باشه. و طولش هم همونجا باید مشخص بشه.
شما فکر بهتری دارید؟

متغیر خارج از بدنه این دو بلاک و قبل از این دو if تعریف میشه، با مقدار اولیه null
در if ای که زودتر اجرا میشه (اگر اولی همیشه اجرا میشه) یا در هر دو با این شرط که اگر null باشه، با طول دلخواه مقدار دهی اش کنید.

csharpdoost
جمعه 20 بهمن 1391, 15:11 عصر
متغیر خارج از بدنه این دو بلاک و قبل از این دو if تعریف میشه، با مقدار اولیه null
در if ای که زودتر اجرا میشه (اگر اولی همیشه اجرا میشه) یا در هر دو با این شرط که اگر null باشه، با طول دلخواه مقدار دهی اش کنید.
طول ارایه را که نمیشه null داد. طولش رو که صفر هم میدم در بلاک دوم خطا میده.

csharpdoost
جمعه 20 بهمن 1391, 16:07 عصر
راهشو پیدا کردم جالبه:
یه بار قبل از دو بلاک new میکنیم با طول صفر. دوباره در بلاک اول با همین نام new میکنیم با طول دلخواه. که همین ارایه با همین طول در بلاک دومی هم شناخته میشه.
مثال :


int t=4;
int r=3;
int length=0;
string []str=new string[length];
if(t==4)
{
str=new string[5];
str[2]="Ali";
}
if(r==3)
{
string str2=str[2];
}