[英]Not all code paths return value
这是我的方法:
public bool UserExistsActiveDir()
{
try
{
const int ADS_UF_ACCOUNTDISABLE = 0x00000002;
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://domainname;
DirectorySearcher objADSearcher = new DirectorySearcher(de);
de.AuthenticationType = AuthenticationTypes.Secure;
objADSearcher.SearchRoot = de;
objADSearcher.Filter = "(SAMAccountName=" + txtUserName.Text + ")";
SearchResult results = objADSearcher.FindOne();
if (results.ToString() != "")
{
int flags = Convert.ToInt32(results.Properties["userAccountControl"][0].ToString());
//results.Properties["userAccountControl"][0].ToString().Equals("514");
if (Convert.ToBoolean(flags & ADS_UF_ACCOUNTDISABLE))
{
return false;
}
else
{
return true;
}
}
}
catch (Exception ex)
{
lblError.Text = ex.Message.ToString();
return false;
}
}
我要去哪里错了? 它说缺少回报,但据我所知,我所有的回报陈述都在那里。
您需要对此if
语句进行else
处理:
if (results.ToString() != "")
如果字符串不为空怎么办? 您需要为该情况返回一个值。
万一没有退货
if (results.ToString() == "")
public bool UserExistsActiveDir()
{
try
{
const int ADS_UF_ACCOUNTDISABLE = 0x00000002;
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://domainname;
DirectorySearcher objADSearcher = new DirectorySearcher(de);
de.AuthenticationType = AuthenticationTypes.Secure;
objADSearcher.SearchRoot = de;
objADSearcher.Filter = "(SAMAccountName=" + txtUserName.Text + ")";
SearchResult results = objADSearcher.FindOne();
if (results.ToString() != "")
{
int flags = Convert.ToInt32(results.Properties["userAccountControl"][0].ToString());
//results.Properties["userAccountControl"][0].ToString().Equals("514");
if (Convert.ToBoolean(flags & ADS_UF_ACCOUNTDISABLE))
{
return false;
}
else
{
return true;
}
}
// <-here
}
catch (Exception ex)
{
lblError.Text = ex.Message.ToString();
return false;
}
}
if (results.ToString() != "")
返回false
, if (results.ToString() != "")
没有返回值。
您的所有回报都在if语句内:
if (results.ToString() != "")
{
int flags =
Convert.ToInt32(results.Properties["userAccountControl"][0].ToString());
//results.Properties["userAccountControl"][0].ToString().Equals("514");
if (Convert.ToBoolean(flags & ADS_UF_ACCOUNTDISABLE))
{
return false;
}
else
{
return true;
}
}
但是,如果result.ToString results.ToString()
为“”,将会发生什么……没有返回值。
if (results.ToString() != "")
语句没有其他内容。
if (results.ToString() != "")
{
...
}
else
{
return false; // or whatever fits in your logic
}
还是不嵌套:
if (results.ToString() != "")
{
...
}
return false; // or whatever fits in your logic
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.