C# 从一个方法返回多个值
大家好,关于从一个方法返回多个值,我遇到了一个问题。我使用“out”从方法返回其他值,这里是代码段:C# 从一个方法返回多个值,c#,C#,大家好,关于从一个方法返回多个值,我遇到了一个问题。我使用“out”从方法返回其他值,这里是代码段: public DataTable ValidateUser(string username, string password, out int result) { try { //Calls the Data Layer (Base Class) if (objDL != null) { int intRet
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'分配给”
任何人都可以帮我解决这个问题。方法的参数
结果
标记为。标记为out
的参数必须在方法中分配,即
result = 5;
这是强制执行的,因此方法的调用方可以保证在方法完成后始终设置随
out传递的参数。方法的参数结果
。标记为out
的参数必须在方法中分配,即
result = 5;
这是强制执行的,因此方法的调用者可以保证在方法完成后始终设置随out传递的参数。您没有在方法中设置result
变量
我猜您想添加一个额外的行,例如
result = intRet;
您没有在方法中设置result
变量
我猜您想添加一个额外的行,例如
result = intRet;
这意味着在所有可能的情况下(在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;
}
//....
这意味着在所有可能的情况下(在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;
}
//....
什么是sqlDT
?它在哪里定义?什么是sqlDT
?它的定义是什么?谢谢,它很有效。。实际上,我把result=intRet放了一段时间,但现在同样的问题是,我做的工作是将result的值初始化为零,第一个result=0谢谢。。实际上,我把result=intRet放了一段时间,但同样的问题现在我做的工作是将result的值初始化为零,第一个result=0