嗨,伙计们,我遇到了从方法中返回多个值的问题。我正在使用'out'从方法返回其他值,这里是片段:
public DataTable ValidateUser(string username, string password, out int result)
{
try
{
//Calls the Data Layer (Base Class)
if (objDL != null)
{
int intRet = 0;
sqlDT = objDL.ValidateUser(username, password, out intRet);
}
}
catch (Exception ex)
{
ErrorHandler.Handle(ex);
OnRaiseErrorOccuredEvent(this, new ErrorEventArgs(ex));
}
return sqlDT;
}
然后当我编译出这样的错误时:
“必须在控制离开当前方法之前将out参数'return'分配给”
任何人都可以帮我解决这个问题。
答案 0 :(得分:2)
这意味着在所有可能性中(在catch的内部和外部,在catch中),必须分配结果变量。
最好的方法是在函数开头给它一个默认值:
public DataTable ValidateUser(string username, string password, out int result)
{
result = 0;
try
{
//Calls the Data Layer (Base Class)
if (objDL != null)
{
int intRet = 0;
sqlDT = objDL.ValidateUser(username, password, out intRet);
result = intRet;
}
//....
答案 1 :(得分:1)
答案 2 :(得分:1)
您没有在方法中设置result
变量。
我猜你想要添加额外的行,例如
result = intRet;