PDA

View Full Version : مشکل در صدا زدن boolean در کلاس



ramin149
دوشنبه 12 مهر 1389, 18:48 عصر
کد من در کلاس به این صورت



public class Validator
{
Address ad = new Address();
Label lbl_error = new Label();
public Validator(Label error)
{
this.lbl_error = error;
}
public void txt_name(TextBox name, Image img_error, Boolean cname)
{
RequiredFieldValidator rfv = new RequiredFieldValidator();
rfv.ControlToValidate = name.ID;
rfv.ErrorMessage = "نام خالی است";
if (rfv.IsValid)
{
cname = true;
img_error.ImageUrl = ad.ImgTrue;
}
else
{
lbl_error.Text += "<br>" + rfv.ErrorMessage;
img_error.ImageUrl = ad.ImgFalse;
cname = false;
}
}

و در صفحه ام به این صورت صدا می زنم



Validator var = new Validator(lbl_error);
var.txt_name(txt_name,img_name,Boolean cname);

if (cname==true)
{
}

چه شکلی باید بگم اگر cname=true بود یه کاری رو انجام بده ؟؟؟

majnun
دوشنبه 12 مهر 1389, 19:17 عصر
خب مقدار برگشتی تابع را درون یه متغیر بولین بریزید بعد از شرط استفاده کنید



bool res=var.txt_name(txt_name,img_name,Boolean cname);



در ضمن بابع باید مقدار برگردونه

return bool

ramin149
دوشنبه 12 مهر 1389, 23:51 عصر
کمک فوری
به زحمت یکی کمک کنه و بگه من تو این متد چه شکلی می تونم یک بولین رو برگردونم



public void txt_name(TextBox name, Image img_error, Boolean cname)
{
RequiredFieldValidator rfv = new RequiredFieldValidator();
rfv.ControlToValidate = name.ID;
rfv.ErrorMessage = "نام خالی است";
if (rfv.IsValid)
{
img_error.ImageUrl = ad.ImgTrue;
return cname = true;
}
}

hamhik
سه شنبه 13 مهر 1389, 00:02 صبح
تابع شما خروجیش از نوع void هست یعنی بدون خروجی باید به جای void نوع bool را بنویسید


public bool txt_name(TextBox name, Image img_error, Boolean cname)

ramin149
سه شنبه 13 مهر 1389, 01:26 صبح
الان مشکلم در کلاس با این کد درست شد


public bool txt_name(TextBox name, Image img_error, Boolean cname)
{
RequiredFieldValidator rfv = new RequiredFieldValidator();
rfv.ControlToValidate = name.ID;
rfv.ErrorMessage = "نام خالی است";
if (rfv.IsValid)
{
img_error.ImageUrl = ad.ImgTrue;
return cname = true;
}
else
{
lbl_error.Text += "<br>" + rfv.ErrorMessage;
img_error.ImageUrl = ad.ImgFalse;
return cname = false;
}
}

ولی برای صدا زدن هنوز مشکل دارم با این کد


bool bname= var.txt_name(txt_name,img_name,Boolean cname) ;

و مشکلم روی cname

majnun
سه شنبه 13 مهر 1389, 01:30 صبح
bool bname= var.txt_name(txt_name,img_name,Boolean cname) ;



شما باید برای ورودی تابع یک مقدار بولین بدهید

Boolean cname ؟؟؟

اینو امتحان کن




bool bname= var.txt_name(txt_name,img_name,true) ;

ramin149
سه شنبه 13 مهر 1389, 01:45 صبح
کد آخری درسته که true می زارم ولی این همیشه صحیح می زاره فکر کنم مشکل از کلاس باشه اگر میشه کمکم کنید .
واقعا لنگم . فکر کنم مشکل از کلاس باشه ؟؟؟

hamhik
سه شنبه 13 مهر 1389, 01:56 صبح
شما باید پارامتر ورودی boolean cname رو در تابع پاک کنید مقدار خروجی تابع
public bool txt_name(TextBox name, Image img_error) برابر با مقداری که توی cname هست دیگه چه نیازیه cname رو تو پارامتر ورودیتون داشته باشید
به جای دستور زیر

return cname = true;
این دستور رو بنویسید

return true;
و به جای دستور

return cname = false;
این دستور رو بنویسید

return false;

alonemm
سه شنبه 13 مهر 1389, 09:14 صبح
دوست من شما اول متغییر از نوع بولین تعریف کن سپس به عنوان یک پارامتر ورودی بفرستش.