【发布时间】:2013-10-01 00:50:25
【问题描述】:
我正在将旧系统的代码从 VB 转换为 C#,该系统使用 Web 表单的基类来继承类。我希望为我们的新外联网建立一个新的登录,它的功能与旧系统一样,我可能错过了一步,但这是我尝试转换的块。
public bool CheckAD()
{
string fncADStatus = "Failure";
string fncSuccess = "Success";
string fncFailure = "Failure";
fncADStatus = Convert.ToString(Session["SessionADStatus"]);
try
{
if (fncADStatus == fncSuccess)
{
return true;
}
}
catch
{
if (fncADStatus == fncFailure)
{
return false;
}
if (Session["SessionADStatus"] == null)
{
return false;
}
}
}
我收到以下错误“并非所有代码路径都返回值”,但我不太明白为什么。
【问题讨论】:
-
在你的catch中,你需要一个ifs之外的return,或者你需要一个带return的else。或者你可以在捕获之外和之后放置一个返回。你的方法必须返回一些东西,因为它不是 void,如果所有代码路径都没有以 return 结尾,Visual Studio 不会让它编译。
-
如果
fncADStatus != fncSuccess怎么办?如果 try 中的 if 块的计算结果为 false,则该方法不会返回任何内容。
标签: c# asp.net active-directory session-variables session-cookies