从一个方法返回多个值
本文关键字:返回 方法 一个 | 更新日期: 2023-09-27 18:09:37
嗨,伙计们,我有一个关于从一个方法返回多个值的问题。我使用'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;
}
那么当我编译有这样的错误时:
"输出参数'return'必须在控件离开当前方法之前赋值"
任何人都可以帮我解决这个问题。
这意味着在所有可能的情况下(在if内部和外部,在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;
}
//....
你的方法的参数result
标记为 out
。标记为out
的参数必须在方法中分配,即
result = 5;
这是强制的,所以你的方法的调用者有保证,通过out
传递的参数总是设置一旦你的方法完成。
您没有在方法中设置result
变量。
我猜你是想多加一行,比如
result = intRet;