我做的一个方法有返回值,但是我想当它满足一定的条件就退出这个过程,怎么写?
如:下面的这个方法返回一个Hashtable,当他是空的时候我想叫他退出过程,怎么写?
protected Hashtable SessionInforMation()
{
Hashtable ht = new Hashtable();
string ProjectName = "通信制高校学习支援系统(II)";//测试
string ProjectDate = "2006-10-11";//request传过来的值
ListItem li = IsDayAtDate(ProjectDate);
if (li.Text.Trim().Equals(""))
{
//就是这里,不能直接用return;的。
}
else
{
string[] Start_End_Date = li.Text.Split('~'); //把每次得到的ListboBox_Date内容以’~‘切成两段
string StartDate = Start_End_Date[0];//赋值
string EndDate = Start_End_Date[1];//赋值 ht.Add("projectname", ProjectName);
ht.Add("projectstartdate", StartDate);
ht.Add("projectenddate", EndDate);
}
return ht;
}
如:下面的这个方法返回一个Hashtable,当他是空的时候我想叫他退出过程,怎么写?
protected Hashtable SessionInforMation()
{
Hashtable ht = new Hashtable();
string ProjectName = "通信制高校学习支援系统(II)";//测试
string ProjectDate = "2006-10-11";//request传过来的值
ListItem li = IsDayAtDate(ProjectDate);
if (li.Text.Trim().Equals(""))
{
//就是这里,不能直接用return;的。
}
else
{
string[] Start_End_Date = li.Text.Split('~'); //把每次得到的ListboBox_Date内容以’~‘切成两段
string StartDate = Start_End_Date[0];//赋值
string EndDate = Start_End_Date[1];//赋值 ht.Add("projectname", ProjectName);
ht.Add("projectstartdate", StartDate);
ht.Add("projectenddate", EndDate);
}
return ht;
}
======================
为什么不能直接return呢?
你当然不能写:
return;
你应该写:
return ht;或return null;//ht此时也为null
return null;总可以吧,哈哈
其实这里返回一个空的ht和NULL都是多此一举的,应为我在这里就是捕捉这个NULL值,如果在返回NULL值还有什么意思呢?对吧。
既然必须返回一个值那就是说不能退出这个过程了,对吧?
那我throw new Exception();这样能退出一个过程吗?
{
Hashtable ht = new Hashtable();
string ProjectName = "通信制高校学习支援系统(II)";//测试
string ProjectDate = "2006-10-11";//request传过来的值
ListItem li = IsDayAtDate(ProjectDate);
if (li.Text.Trim().Equals(""))
{
return ht;
//就是这里,不能直接用return;的。
}
else
{
string[] Start_End_Date = li.Text.Split('~'); //把每次得到的ListboBox_Date内容以’~‘切成两段
string StartDate = Start_End_Date[0];//赋值
string EndDate = Start_End_Date[1];//赋值 ht.Add("projectname", ProjectName);
ht.Add("projectstartdate", StartDate);
ht.Add("projectenddate", EndDate);
return ht;
}
}
将那个return ht; 移上去就解决啦.
如果只是退出这个过程的话,用return null 显然就已经达到目的了啊...
===================================================
我的Application怎么没Exit()方法?
WinForm还是控制台的?
Application.Exit();
控制台程序用:
System.Environment.Exit(0);楼主试下看...
WinForm也可以用System.Environment.Exit(0);
且用这个可以将程序结束得更干净...
Response.Write("<script>window.opener=null;window.close();</script>");
用这句还有"是否确认退出的提示":
Response.Write("<script>window.close();</script>");楼主试试看....
throws new Exception( "XXX 不能为空" );如果 li.Text.Trim().Equals("") 属性于正常行为那么就要重新考虑一下你类的设计了
li.Text.Trim(). 这个可以用在接收一个参数的方法,
用 return null.
用到的时候,if(null!=SessionInforMation())
{
//你要做的
}
LZ死钻牛角尖了
后面对那个ht 的处理是后面程序的事情,既然程序逻辑说明了可能不会返回正确的Hashtable 的值,那楼主就应该在后面的程序中加上处理,比如如果返回值是null该怎么办...