PDA

View Full Version : سوال: چك كردن در حال اجرا



saraIT
پنج شنبه 23 آبان 1387, 12:14 عصر
با سلام
من برنامه asp.net ي دارم كه مي خواهم در يك if يك شرطي را چك كند و اگر آن شرط برقرار بود كدي را اجرا كند آن كد متغيري دارد كه در بعضي شرايط تعريف شده است و در بعضي ديگر تعريف نشده است مي خواهم در مواقعي كه آن شرط برقرار نيست اصلا ان كد را ناديده بگيرد ولي در حال حاضر compiling error مي دهد و مي گويد اين متغير تعريف نشده آيا راهي هست كه در مواقعي كه آن شرط برقرار نيست آن تكه كد را اصلا نبيند و از آن error نگيرد ؟:متفکر::ناراحت:

raravaice
پنج شنبه 23 آبان 1387, 12:25 عصر
سورس بزار، اینجوری فایده نداره!

موفق باشید

saraIT
پنج شنبه 23 آبان 1387, 12:39 عصر
سورس بزار، اینجوری فایده نداره!

موفق باشید


يعني چي سورس بذارم؟ يعني هيچ راهي نداره كه يك چيز بي ربط رو بخواهم تو برنامه بذارم بدون اينكاه هيچ وقت اجرا بشه؟:گریه:

raravaice
پنج شنبه 23 آبان 1387, 12:50 عصر
يعني هيچ راهي نداره كه يك چيز بي ربط رو بخواهم تو برنامه بذارم بدون اينكاه هيچ وقت اجرا بشه؟

کامنتش کن!

اگر از #C استفاده میکنی قبلش // بزار و اگر از vb استفاده میکنی قبلش ' بزار

موفق باشی

saraIT
پنج شنبه 23 آبان 1387, 14:16 عصر
کامنتش کن!

اگر از #C استفاده میکنی قبلش // بزار و اگر از vb استفاده میکنی قبلش ' بزار

موفق باشی
اگه برنامم اين جوري باشه كه بياد ورژن دات نت رو چك كنه اگه 2 بود بياد tree view تعريف كنه اگه نبود كاري نكنه آن موقع رو يك جايي كه يكه از تعريف( tree view) ارور مي گيره مي خواهم اگه ديد كه يكه اصلا آن رو در نظر نگيره ولي اگه 2 آن رو تعريف كنه


if version==2
tree view difinition -> inja error migire dar net 1
else
//nothings

ennovation
پنج شنبه 23 آبان 1387, 15:00 عصر
سلام
اول اینکه میخواستم ببینم که آیا قبل از این شرط متغییر تو تعریف کردی یا نه
اگه این متغیر تعریف نشده که تکلیف مشکلت روشنه
ولی اگه مشکلت اینه که نمیخوای قبلش این متغیر رو تعریف کنی و به همین خاطر هم error داری که کار ساده اینه که یک try و catch تعریف کنی
اگه که متغییر رو نشناسه خوب خطا میده و تو هم اونو میبری به catch و کاراتو ادامه میدی
اگه هم که بشناسه که try میکنی . اینطوری بنظر من خیلی سریعتر وراهتتر است .


public ......... (.......................)
{

try
{
if (version==2)
{
اگه که متغییرت مقدار داشت که این قسمت اجرا میشه
}
}
catch ()
{
اگه خطا گرفت که این قسمت اجرا میشه
}
finally
{
اگر هم میخوای که بعد از هر دو تای اونا کاری انجام بشه که کد اینجا مینویسی
}
}

saraIT
پنج شنبه 23 آبان 1387, 15:21 عصر
سلام
اول اینکه میخواستم ببینم که آیا قبل از این شرط متغییر تو تعریف کردی یا نه
اگه این متغیر تعریف نشده که تکلیف مشکلت روشنه
ولی اگه مشکلت اینه که نمیخوای قبلش این متغیر رو تعریف کنی و به همین خاطر هم error داری که کار ساده اینه که یک try و catch تعریف کنی
اگه که متغییر رو نشناسه خوب خطا میده و تو هم اونو میبری به catch و کاراتو ادامه میدی
اگه هم که بشناسه که try میکنی . اینطوری بنظر من خیلی سریعتر وراهتتر است .


public ......... (.......................)
{

try
{
if (version==2)
{
اگه که متغییرت مقدار داشت که این قسمت اجرا میشه
}
}
catch ()
{
اگه خطا گرفت که این قسمت اجرا میشه
}
finally
{
اگر هم میخوای که بعد از هر دو تای اونا کاری انجام بشه که کد اینجا مینویسی
}
}


من هم همين كار رو كردم ولي مثلا اگه يك همچين چيزي بنويسم باز هم compile error مي گيره

int a=3;
try
{
if (a == 4)
{
Response.Write(s); --> s ro ghablesh tarif nakardam
}
}
catch
{

}
}


Compiler Error Message: CS0103: The name 's' does not exist in the current context

if (a == 4) Line 13: Response.Write(s); Line 14:

ennovation
پنج شنبه 23 آبان 1387, 17:52 عصر
سلام
ببین من متوجه نشدم چرا اون s قبلا تعریف نشده
خوب بالاخره باید یک مقداری که داشته باشه
میشه توضیح بدی منطورت چیه و چرا اونو قبلا تعریف نکردی

ennovation
پنج شنبه 23 آبان 1387, 18:14 عصر
یه راه خیلی ساده وجود داره که از این خطا دور بشی
میتونی این کار رو بکنی که متغیر مثلا s رو قبل از if مقدار دهی کنی و تعریف کنی
حالا وقتی که شرط درست بود اونو دوباره با مقدار اصلی مقدار دهی کن و برنامه رو ادامه بده
اینجوری دیگه اشکالی پیش نمیاد


string s="";
if (version==2)
{
s="Hallo !!! "
......
.......
}
esle
{
................
}


حالا s میتونه هر چی باشه . حتی object !

saraIT
جمعه 24 آبان 1387, 09:55 صبح
یه راه خیلی ساده وجود داره که از این خطا دور بشی
میتونی این کار رو بکنی که متغیر مثلا s رو قبل از if مقدار دهی کنی و تعریف کنی
حالا وقتی که شرط درست بود اونو دوباره با مقدار اصلی مقدار دهی کن و برنامه رو ادامه بده
اینجوری دیگه اشکالی پیش نمیاد


string s="";
if (version==2)
{
s="Hallo !!! "
......
.......
}
esle
{
................
}


حالا s میتونه هر چی باشه . حتی object !


منون از توجهتون:لبخندساده:
يعني اگه اين جوري بنويسم درست مي شه ديگه توي dotnet 1 ----error نميده؟:متفکر:
شبهه كد:

object s=new object

if version=2
s=new treeview
else
//nothings

ennovation
شنبه 25 آبان 1387, 20:12 عصر
سلام
نمیدونم که درستش کردی یا نه
ولی این کدی که دادی اشتباه است چون اول پارامتر خودتو object تعریف کردی وبعد tree .
از همون اول میتونی اونو tree تعریف کنی و تموم


TreeView tr = new TreeView();
if ( version== 2)
{
tr=.......;
}
else
{
tr = null ;
}

ennovation
شنبه 25 آبان 1387, 21:54 عصر
TreeView tr = new TreeView();
if ( version== 2)
{
tr=.......;
}
else
{
tr = null ;
}